{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Monitoring VQE convergence\n",
    "\n",
    "Variational algorithms in Qiskit, like [VQE](https://qiskit.org/documentation/stubs/qiskit.aqua.algorithms.VQE.html) and [QAOA](https://qiskit.org/documentation/stubs/qiskit.aqua.algorithms.QAOA.html), provide the option for a user to give a callback method that can be used to monitor optimization progress as the algorithm runs and converges to the minimum. The callback is invoked for each functional evaluation by the optimizer and provides the current optimizer value, evaluation count, current optimizer parameters etc. Note that, depending on the specific optimizer this may not be each iteration (step) of the optimizer, so for example if the optimizer is calling the cost function to compute a finite difference based gradient this will be visible via the callback.\n",
    "\n",
    "This notebook demonstrates using Qiskit's VQE algorithm to plot graphs of the convergence path to ground state energy with a selected set of optimizers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pylab\n",
    "\n",
    "from qiskit import BasicAer\n",
    "from qiskit.aqua.operators import X, Z, I\n",
    "from qiskit.aqua import QuantumInstance, aqua_globals\n",
    "from qiskit.aqua.algorithms import VQE, NumPyMinimumEigensolver\n",
    "from qiskit.aqua.components.initial_states import Zero\n",
    "from qiskit.aqua.components.optimizers import COBYLA, L_BFGS_B, SLSQP\n",
    "from qiskit.circuit.library import TwoLocal"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "First we create a qubit operator for VQE. Here we will use the same operator as used in the algorithms introduction, which was originally computed by Qiskit Chemistry for an H2 molecule."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "H2_op = (-1.052373245772859 * I ^ I) + \\\n",
    "        (0.39793742484318045 * I ^ Z) + \\\n",
    "        (-0.39793742484318045 * Z ^ I) + \\\n",
    "        (-0.01128010425623538 * Z ^ Z) + \\\n",
    "        (0.18093119978423156 * X ^ X)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will show the callback usage below over a set of optimizers for comparison. The minimum energy of the H2 Hamiltonian can be found quite easily so we are able to set maxiters to a small value"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Optimization complete      \n"
     ]
    }
   ],
   "source": [
    "optimizers = [COBYLA(maxiter=80), L_BFGS_B(maxiter=60), SLSQP(maxiter=60)]\n",
    "converge_cnts = np.empty([len(optimizers)], dtype=object)\n",
    "converge_vals = np.empty([len(optimizers)], dtype=object)\n",
    "\n",
    "for i, optimizer in enumerate(optimizers):\n",
    "    print('\\rOptimizer: {}        '.format(type(optimizer).__name__), end='')\n",
    "    aqua_globals.random_seed = 50\n",
    "    var_form = TwoLocal(rotation_blocks='ry', entanglement_blocks='cz')\n",
    "\n",
    "    counts = []\n",
    "    values = []\n",
    "    def store_intermediate_result(eval_count, parameters, mean, std):\n",
    "        counts.append(eval_count)\n",
    "        values.append(mean)\n",
    "  \n",
    "    vqe = VQE(H2_op, var_form, optimizer, callback=store_intermediate_result,\n",
    "              quantum_instance=QuantumInstance(backend=BasicAer.get_backend('statevector_simulator')))\n",
    "    result = vqe.compute_minimum_eigenvalue(operator=H2_op)\n",
    "    converge_cnts[i] = np.asarray(counts)\n",
    "    converge_vals[i] = np.asarray(values)\n",
    "print('\\rOptimization complete      ');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now from the callback data we stored we can plot the energy value at each objective function call each optimizer makes. An optimizer using a finite difference method for computing gradient has that characteristic step like plot where for a number of evaluations it is computing the value for close by points to establish a gradient (the close by points having very similar values whose difference cannot be seen on the scale of the graph here)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": false,
    "tags": [
     "nbsphinx-thumbnail"
    ]
   },
   "outputs": [
    {
     "data": {
      "image/png": "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HdbkuVr6LAC0BwffAOg6C0cM/pNzrjbGkFNYQB/rnBs3em42M7O7FL7ff+n2WjB5Fo7i+7pzbtaefglgZtHhBjDjzCxnZqdH/1y/r6S/0simxNj7Jf08CcW2mZ1gZvtE7/cCSUdpdB4YAJBgbJoE0A0m6RMK52cPKpxo8X+rD4bHzJvCWcxJcJjC7HGPpF9KemuUswYAzAFESgAAAIAOIlICAAAAdBAFNwAAANBBicxwL1682K1YsaLbywAAAECC3XPPPVucc0smui6RBfeKFSu0bt26bi8DAAAACWZmz7RyHZESAAAAoIMouAEAAIAOouAGAAAAOiiRGW4AAIC5rFgsqq+vT0NDQ91eSiIEQaDly5crnU5P6ecpuAEAABKmr69Pe+yxh1asWCEz6/ZyZjXnnLZu3aq+vj4deOCBU3oOIiUAAAAJMzQ0pEWLFlFst4GZadGiRdP61wIKbgAAgASi2G6f6X6WFNwAAADoiOeff17nn3++Vq5cqeOOO06nn366fvGLX2j9+vU66aSTdNhhh+mQQw7Rpz71KTnnJElf+cpXtGTJEvX29uqII47QW9/6Vg0MDOjHP/6xjj/++Op15XJZxxxzjO68805deuml+tu//du6a/jOd74jM9Njjz02Y+97LApuAAAAtJ1zTmeddZbWrFmjp556Svfcc48+/elP64UXXtCb3/xmXXzxxXr88cf1wAMP6M4779QXv/jF6s+ed955uv/++7V+/XplMhldf/31esMb3qADDjhA1157rSTp85//vFavXq3XvOY1Tddx3XXX6XWve52uu+66jr7fZii4AQAA0Ha33nqr0um03ve+91XvO/roo/WLX/xCr33ta3XqqadKkvL5vL7whS/oiiuuGPccpVJJu3bt0p577ilJuuqqq/TpT39a69ev1xe+8AV95jOfabqG/v5+3XHHHbr22mv1jW98o43vbnKYUgIAAJBgn/jeej2yYUdbn/PwZfP1V2cc0fSahx9+WMcdd9y4+9evXz/u/pUrV6q/v187doTrvP7663XHHXdo48aNOvTQQ3XGGWdIkpYuXaoPfehDOv744/W5z31Oe+21V9M13HTTTTrttNN06KGHatGiRbrnnnvqrqnT6HADAABgtxJHSp5//nmtWrVKV155ZfWxD3zgAyqXy7rwwgsnfJ7rrrtO559/viTp/PPP71qshA43AABAgk3Uie6UI444QjfccMO4+w8//HDdfvvto+775S9/qXnz5mn+/Pmj7jcznXHGGfr85z+viy++WJKUSqVamhqybds23XLLLXrooYdkZiqXyzIzXXnllTM+wYUONwAAANrupJNO0vDwsK6++urqfQ8++KAOO+ww3XHHHVq7dq0kaXBwUB/84Af1kY98pO7z3HHHHVq5cuWkX/+GG27QO9/5Tj3zzDN6+umn9eyzz+rAAw/UT37yk6m9oWmg4AYAAEDbmZluvPFGrV27VitXrtQRRxyhj33sY9pnn31000036bLLLtNhhx2mVatW6ZWvfKUuuuii6s9ef/316u3t1VFHHaX77rtPH//4xyd8vcsuu0zLly+vfl133XU666yzRl1zzjnndCVWYvEswyRZvXq1W7duXbeXAQAA0BWPPvqoXvGKV3R7GYlS7zM1s3ucc6sn+lky3G2y9cWNGioOa4+M1+2ltF/Kk7Lz6j7km698Oj/DCwIAAJg9KLjb5APXn671Qanby5hxKUvpq2/8qo5ecnS3lwIAALBbouBuk6XudVq0c6N+46BF3V5K+z32fWnlSdIhbxh197ahbbrmoWv03M7nKLgBAAAaoOBuk4GeC/SrLbv0/04/odtLab/7lknBftLh7xx194b+DbrmoWs0XB7u0sIAAAB2f0wpaZMg7WmoWOn2MjojnZOKg+PuDvxAkjRYGv8YAAAAQhTcbRL4noaK5W4vozMyeak4MO7uwAsLbjrcAAAAjVFwt0kuk+CCO92g4I463EOloZleEQAAwKxBwd0m2XRKQ6W5FSlJWUqZVEaDZSIlAABgtHnz6o8UHuvSSy/Vvvvuq97eXr385S/X+9//flUqYU114YUX6sADD1Rvb696e3v1uc99TpLU39+v97///Vq5cqWOPfZYHXfccfrSl74kSapUKvrgBz+oI488snqozq9+9auGr79ixQqtWrVKvb29WrVqlW666aZpvvPx2DTZJoHvqVCqqFJxSqWs28tpr3S+bsEtSVk/q+ESkRIAADB1f/qnf6o/+7M/U6VS0W/+5m/qf/7nf3TiiSdKkq688kq99a1vHXX97//+7+uggw7SE088oVQqpc2bN+vLX/6ypPCUyg0bNujBBx9UKpVSX1+fenp6mr7+rbfeqsWLF+vxxx/XqaeeqjPPPLOt74+Cu02CdHjg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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f6b303150b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pylab.rcParams['figure.figsize'] = (12, 8)\n",
    "for i, optimizer in enumerate(optimizers):\n",
    "    pylab.plot(converge_cnts[i], converge_vals[i], label=type(optimizer).__name__)\n",
    "pylab.xlabel('Eval count')\n",
    "pylab.ylabel('Energy')\n",
    "pylab.title('Energy convergence for various optimizers')\n",
    "pylab.legend(loc='upper right');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Finally since the above problem is still easily tractable classically we can use NumPyMinimumEigensolver to compute a reference value for the solution. We can now plot the difference from the resultant exact solution as the energy converges with VQE towards the minimum value which should be that exact classical solution."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Reference value: -1.85728\n"
     ]
    }
   ],
   "source": [
    "npme = NumPyMinimumEigensolver()\n",
    "result = npme.compute_minimum_eigenvalue(operator=H2_op)\n",
    "ref_value = result.eigenvalue.real\n",
    "print(f'Reference value: {ref_value:.5f}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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6QkXQlidUspRKXWB8aN+f+Ax/hr4WGcusOl0SMCVUmcrpXyN93s9MISG9cVCCCFOczIwUwjREyjgCQzze5/CMJPGv+t3KnXI2OYSawTXBaIx1DI7AweAmca6bSGEEGcIKUcRQgghhBCim0k5ihBCCCGEEN1MknAhhBBCCCG62RlRE+7t7a2FhIRYOwwhhBBCCHGaS05Oztc0zaetdmdEEh4SEsLmzZutHYYQQgghhDjNKaUyzGkn5ShCCCGEEEJ0M0nChRBCCCGE6GaShAshhBBCCNHNzoiacCGEEEKIM11VVRWZmZmUl5dbO5TTgoODAwEBAej1+g4dL0m4EEIIIcQZIDMzkz59+hASEoJSytrh9GqaplFQUEBmZiahoaEdOoeUowghhBBCnAHKy8vx8vKSBNwClFJ4eXl16lMFScKFEEIIIc4QkoBbTmefpSThQgghhBCiW+Tm5jJr1izCw8OJj4/nggsuYO/evaSmpnLOOecQHR1NZGQkTz75JJqmAfDxxx/j4+NDXFwcgwYNYubMmZSVlfHrr78yduzY+nY1NTUMGzaMdevW8fjjj/N///d/zcawaNEilFLs2bOn2+67OZKECyGEEEKILqdpGpdeeikJCQns37+f5ORknnnmGY4ePcpFF13EvHnzSEtLY9u2baxbt44333yz/tgrr7ySlJQUUlNTsbOz46uvvmLKlCkEBwfzwQcfAPDaa68xYsQIxo0b12ocCxYsYMKECSxYsKBL77ctkoQLIYQQQogut3LlSvR6Pbfddlv9tqFDh7J3717Gjx/PeeedB4CTkxOvv/46zz77bJNzVFdXU1paioeHBwAvv/wyzzzzDKmpqbz++us899xzrcZQUlJCUlISH3zwAV9++aUF7679ZHYUIYQQQogzzBNLU9mVXWzRcw70c+WxxEEt7t+5cyfx8fFNtqempjbZHh4eTklJCcXFhhi/+uorkpKSyMnJISoqisTERAD69+/Pvffey9ixY3n11Vfx9PRsNcbFixczdepUoqKi8PLyIjk5udmYuoP0hAshhBBCiB6trhwlNzeXwYMH88ILL9Tvu+OOO6ipqWHOnDltnmfBggXMmjULgFmzZlm1JEV6woUQQgghzjCt9Vh3lUGDBrFw4cIm2wcOHMjq1asbbDtw4AAuLi64uro22K6UIjExkddee4158+YBoNPpzJqp5Pjx46xYsYIdO3aglKKmpgalFC+88IJVZo2RnnAhhBBCCNHlzjnnHCoqKnj33Xfrt23fvp3o6GiSkpL47bffADh16hR33303Dz74YLPnSUpKIjw8vN3XX7hwIddeey0ZGRkcOnSII0eOEBoaypo1azp2Q50kSbgQQgghhOhySim+//57fvvtN8LDwxk0aBD//Oc/8fX1ZfHixTz11FNER0czePBgRo4cyZ133ll/7FdffUVcXBxDhgxh69atPProo21e76mnniIgIKD+tWDBAi699NIGbS677DKrlaSourkVT2cjRozQNm/ebO0whBBCCCGsZvfu3cTExFg7jNNKc89UKZWsadqIto6VmvAuUlNdSVrWIfzdHVCchqtT6Z3AVt/sLidbJ2x18qslhBBCCNESyZS6yK+bl/FA2mPWDsMqQt1C+WzaZ7jZu1k7FCGEEEKIHkmS8C4yMjKOSVsGcOJUFWPDvXG2s7F2SJZ1cA0oHYy9A+xd6jdX1FTwRsobzFszjzcmv4FOybADIYQQQojGJAnvIl5eYfzzmk+Z9soa8g878t3t47C3PY0S8eyt8OE0SP4Wrl8KekcAftyRw3DnUpKy3uedbe8wN26ulQMVQgghhOh5pJuyC/V3c+SFmUNJzS7mheVp1g7HsvyGwYx3IXMTLL4DjAN8P157iFWbI5gWciFvbXuLpKwkKwcqhBBCCNHzSBLexaYM7Mf1Y4N5P+kgK9PyrB2OZQ28CM59HHZ+C6uepbK6lm2ZRdTUQqL/XUR6RPLQ6ofIKsmydqRCCCGEED2KJOHd4J8XxDDAtw//+HobecXl1g7HssbfC3HXwB/Pkr3mUyqqawHYlXWK/yb8F03TuH/V/VTUVFg5UCGEEEKInkOS8G7goLfhtauGUVpZzf1fb6O2tuW52bOLTrH1cCG9Zv52peDC/0LweALWPMBwtRd3Jz1bDxcR6BrI0xOfZlfBLp7Z8Iy1IxVCCCGElbm4uLTdCHj88cfx9/cnLi6OAQMGMHfuXGprDR19c+bMITQ0lLi4OOLi4nj11VcBKCkpYe7cuYSHhzN8+HDi4+N57733AKitreXuu+8mNja2fjGggwcPtnj9kJAQBg8eTFxcHIMHD2bx4sWdvPOmJAnvJpH9+vBY4iCS0vN5d82BBvuqampZvjOXGz7ayITnVnDpm+u47sONpOeVmHXuden5XPHOel74eU9XhN42Wzu48nOO23jzgf1LXBpSzdYjhQAkBCZwy+Bb+Hbft3y/73vrxCeEEEKIXue+++4jJSWFXbt2sWPHDv7444/6fS+88AIpKSmkpKRw9913A3DzzTfj4eHBvn372LJlC8uXL+f48eOAYcXN7Oxstm/fzo4dO/j+++9xd3dv9forV64kJSWFhQsX1l/DkmR2lG40a2QgSfvy+b+f0xgT5oWbo56vNh1hYXIm+SUV9HO1545JEbg56nnl931M/e9qbpoQyl2TI3Gxb/qj2pl1gueW72HNvnxsdYqthwu5dkwIvm4O3X5vmqMHd2gP8YnuER49OJuHanVoT9qgFNwB7PBx56m1j+K45B7cje9kex8FsTMg7qp2HWVvY0+cTxxKnYaLNgkhhOidfpoHuTsse07fwTDtWcueE6isrKS8vBwPD48W2+zfv5+NGzfyxRdfoNMZ+ph9fHx46KGHAMjJyaF///71+wICAsy+fnFxcavX7ihJwruRUoqnZwwm5UgRV7/3J2WVNdjoFOcM6MuskYGcHeWDrY3hl+OSYf48v3wP76w+wKKULB6+IIaLhvqhlOJgfikv/pLGsu05uDvp+df0GBKifTjv5dV8tPYg/7yg+5ekzSw8xaYSH1ZMep9RpX/w3ZZMpkT3I9zHGRvguZoKrsxfyQPevTwRzVsBv6xo92Evnv0i54Wc1wUBCSGEEKenl19+mc8//5yMjAymTZtGXFxc/b4HHniAp556CoDPPvuMgwcPMnTo0Poku7ErrriCCRMmsGbNGiZPnszs2bMZNmxYq9efNGkSmqZx4MABvv76a8vdmJEk4d3MzVHP61cPY/4Pu5k0oC+XxwfQ17Vpz7W3iz3PzxzKVaOC+PfiVO75MoX/bThMuI8L32w+gt5Gx13nRHDLWWG4OhiWj58+xI//bTjM7cbe9O6UnGEoPwkdPA73vufz0pafKXAL5pEpAwHwBBZWnCC9KL1b47KoqnJYZJz3/JK3QG/eJw4Prn6QJfuXSBIuhBCi5+iCHmtLu++++/jHP/5BVVUVM2fO5Msvv2TWrFmAoRxl5syZ9W0b13fPnz+fb775hry8PLKzswkICCAtLY0VK1awYsUKJk+ezDfffMPkyZNbvP7KlSvx9vZm//79TJ48mYSEBLNr2s0hSbgVDAvyYOHccWa3XXTHeL7adITnf97DloxCrhoVxF2TI+jbp2ES+Lezwli6LZsvNhxmbkJ4V4TeouSMQpztbBjg64qNThHr58rWw0UN2rjZuxHfL75b47K4C9+Ej6fDjiUw7TmzDpkeNp1PUz+l4FQBXo5eXRygEEIIcXrR6/VMnTqV1atX1yfhjQ0cOJBt27ZRW1uLTqfjkUce4ZFHHmmQNNvb2zNt2jSmTZtGv379WLRoUatJeJ3w8HD69evHrl27GDVqlMXuSwZm9gI2OsXVo4NIeugcNjw8mScviW2SgAPE+rsxMdKbD9cepLyqxqxz78g8QVVN52u0kzMKGRbkgY3OUG4yLMiDHVmWOXePEjIBRt0KG96GQ2vNOiQxLJEarYblh5Z3cXBCCCHE6UfTNNauXUt4eMsdjBEREYwYMYJ//etf1NQYcqDy8vL62ea2bNlCdnY2YJgpZfv27QQHB5t1/by8PA4ePGh2e3NJEt6LuNjb4uVi32qbv50VzrGTFSza2vYCOd9tySTx9SS+2ZzZqbhKKqrZk1vM8OC/Bi0MC3KnorqWPTknO3XuHuncx8EjBBbfDpWlbTaP9IhkgOcAlu5f2tWRCSGEED1aWVkZAQEB9a+XXnqpxbYvv/wycXFxxMbGUlNTw+23397qud9//30KCgrqE/IpU6bw/PPPA4ZEOjExkdjYWIYMGYKtrS133nlnq+ebNGkScXFxTJo0iWeffZZ+/fq1/4ZbIeUop5nxEV7E+rvy7uoDXD4isL5nurH0vBL+tWgnAKvS8rh6dFCHr5lyuIhaDUY0SMINX289UsjgALcOn7tHsnOGi98wlKX89gRc8HybhySGJfLC5hc4cOIAYW5h3RCkEEII0fPUmjlD2uOPP87jjz/e7L6PP/642e2urq688847ze6bOnUqU6dONevaAIcOHTK7bUdJT/hpRinF384K50B+Kb/uOtpsm/KqGu78YgsOehvOjenL+v0FVHeibGRzxnGUgrigv+bb9HNzoG8f+yZ14aeNkAkw6m+w8R04lNRm8wvCLkCndCzbv6wbghNCCCFETydJ+GloWqwvQZ5OvP3H/mZX3nxiaSp7ck/y0hVDmTE8gJMV1WzL7HiynJxRSHS/PvWztIDhzUBcoDtbDxd2+Lw93rmPGctS7mizLMXb0ZuxfmNZdmAZtdppVicvhBBCdND8+fPrV76se82fP7/brj969Ogm19+xw8Lzp7dAylFOQ7Y2Om6ZGMqji1PZePA4o8P+mpFjcUoWCzYeYW5COAnRfSkqq0QpWLMvn/hgz3Zfq6ZWI+VwERfF+TXZNyzIg192HaWwtBIPZ7tO3VOP1M6ylMSwROatmUfy0WRG+o7spiCFEEKInqtuFhNr2bBhg9WuLUn4aeryEYH897d9vP3H/vok/MCxEh7+bgcjgj34+5QoANyd7BgS4M6affnce25Uu6+z9+hJTlZUEx/cdCWpYcbylJQjRUwa0LcTd9ODmZalFKSDavnDpXO0WpxQLP3lPkbqfLsxyE6yd4Hx94JfXNtthRBCCGEWScJPUw56G64fF8JLv+5lT24xIV7O3PHFVvS2Ol69alj9ypwAEyO8eeuP/RSXVzUoKTFH3SI9I5rpRR8S4IZOwdbDhadvEg6GspTSPCjMaLWZIzDF1o5fdMU8XG6LA71k9dCsZNi1GEbeDJMeAUf3to8RQgghRKskCT+NXTsmmLdW7efdPw7gZG/D7pxiPpwzAj93xwbtJkZ68/rKdNbvL+D8Qe3roU3OKMTbxZ5AT8cm+5zsbIn2dWXrkdN0cGYdO2e4/GOzmibmbGDxLzezcspDTAud1rVxWcqpIlg5Hza9D6nfw5QnYegsUL3kTYQQQgjRA8nAzNOYh7Mds0YFsigli8//PMytZ4VxzoCmc1wOC/LAyc6GpH357b5GckYhI4I9UC0kZMOC3A1TGNY2HSB6JhrpO5J+Tv1615zhju5wwQtwy0pwD4ZFt8FHF8DRVGtHJoQQopeZP38+gwYNYsiQIcTFxbFhwwYSEhLYvHlzg3ZlZWVcc801DB48mNjYWCZMmEBJSQkAmZmZXHzxxURGRhIWFsadd95JRUUFAKtWrcLNzY24uDhiYmJ44oknuv0ezSU94ae5myaE8tn6DIYGuvHA+dHNtrGz1TE2zIs1+46169x5J8s5fLyMa8e0vILUsEB3vthwmAP5JUT07dOu85+OdErH9LDpfJL6Cfmn8vF29LZ2SObzi4ObfoWtn8Fvj8PbEyH2stO3PGXAdAhLsHYUQghx2li/fj3Lli1jy5Yt2Nvbk5+fT2VlZbNtX3nlFfr161c/U0laWhp6vR5N05gxYwZz585l8eLF1NTUcOutt/Lggw/yyiuvADBx4kSWLVtGaWkpcXFxJCYmMnz48G67T3NJEn6aC/BwYtndE/B3d0Rv0/IHHxMivfl9Tx5HjpcR6Olk1rm3GOvBhzczKLNO3aI9Ww4XSRJulBiWyIc7P2T5weXMHjjb2uG0j04H8ddDTCL8/gTsXgqn45SLFSchZ7sk4UIIYUE5OTl4e3tjb29Y/dvbu+WOqJycnAbLxEdHGzoSf//9dxwcHLjhhhsAsLGx4eWXXyY4OLjJ1IbOzs7Ex8eTnp4uSbiwjgG+rm22mRjpAximKjR39czkjELsbHXE+rd8/jBvZ1wdbNl6uIgrRgSaF7AJTdPYeqQIHxd7s98c9HQRHhHEeMawZP+S3peE13HyhMRXDK/T0aLbYf8Ka0chhBBd5rmNz7Hn+B6LnnOA5wAeGvVQi/vPO+88/vOf/xAVFcW5557LlVdeydlnn91s2xtvvJHzzjuPhQsXMnnyZK6//noiIyNJTU0lPj6+QVtXV1dCQkJIT09vsL2goIA///yTRx99tPM31wUkCRcAhPs409/NgaT0Y2Yn4ZszChni74a9rU2LbXQ6xdAOLtqTUVDKvxbtZI2xVt3f3ZGx4V6MDfNibLhXkwGmvUlieCLPb3qe/UX7CXcPt3Y4ojH3IDiZA9UVYGtv7WiEEOK04OLiQnJyMmvWrGHlypVceeWVPPvss822jYuL48CBA/zyyy/89ttvjBw5kvXr15t1nTVr1jBs2DB0Oh3z5s1j0KBBlrwNi+mVSbhSKgx4BHDTNG2mteM5HSilmBjpzc+pR6mp1bDRtT7zRXlVDTuzTnDjhNA2zz0syIPXV+yjtKIaZ/u2f+Uqq2t5b80BXv19H3obHf+aHoPeRsf6/QX8tvsoC5MzAQj2cmJipDcPnDcAN6f2Ta1obdNCp/Hi5hdZun8p98bfa+1wRGPuxo9AT2SCl7xJEkKcflrrse5KNjY2JCQkkJCQwODBg/nkk09abOvi4sKMGTOYMWMGOp2OH3/8kaFDh7Jw4cIG7YqLi8nNzSU6OpoNGzbU14T3dN2ehCulPgQuBPI0TYs12T4VeAWwAd7XNK35t0aApmkHgJuUUgtbaiPab0KkD19vzmRH1gniAlsfbLcz6wRVNRrxQS3Xg9cZFuROrQbbM08wNtyr1bbJGcd5+LudpB09ybRYXx5LHISvmwMA148LobZWY0/uSdYfKGD9/gK+2nSEjIIyPpozssHc5z2dt6M34/zGsWT/Ehxte2+Pfkd5OHgQ6hZKiGsI3o7eLc6uYzXuxk+DCg9JEi6EEBaSlpaGTqcjMjISgJSUFIKDg9m5c2eTtmvXrmXgwIF4eHhQWVnJrl27SEhIYPLkycybN49PP/2U6667jpqaGv7+979z55134ujYu/4/tUZP+MfA68CndRuUUjbAG8AUIBPYpJRagiEhf6bR8TdqmpbXPaGeWSZEeBuWsN97rM0kfLMZgzLrxAUYzrX1SGGLSfiJU1U8v3wP/9twGD83B96/bgTnDmw6naJOpxjo58pAP1dumhDKV5sO89C3O3j2pz3868KBbcbSk1wZfSUddSbjAAAgAElEQVT3rLyH11Net3YoVuWidyHENYRQt1BC3UK5JOISfJx8rBtUXRJedNi6cQghxGmkpKSEu+66i6KiImxtbYmIiODdd99l5syZTJ8+Hb3e8Kn22LFjSUxMZO7cuWiaRm1tLdOnT+eyyy5DKcX333/PHXfcwZNPPsmxY8e48soreeSRR6x8d+3X7Um4pmmrlVIhjTaPAtKNPdwopb4ELtY07RkMveaiG3g62zHIz5U16fncNTmy1bbJGYWEejvj7dJ2vayHsx1h3s5sPdz8oj0r9hxl3rc7yC+p4KYJodw/JcqsshWAK0cGsTvnJO8nHSSmvyuXxQeYdVxPcHbg2STPTkbjzJpDXUOj4FQBB08c5OCJgxwqPsTBEwfZmLuRpQeWcrz8uNU+Jq3n6gc6W0nChRDCguLj41m3bl2T7atWrWq2/XXXXdfs9sDAQJYsWQLAunXruOqqq9iyZQvDhw+vL3XpDXpKTbg/cMTk+0xgdEuNlVJewHxgmFLqn8ZkvXGbW4FbAYKCzBtoKAyzpLy3+gAlFdW4tJAIa5rGloxCEqLNX4o+LtCd1fvy0TStvvSguLyKJ5fu4pvkTKL79eGD60cyOMCt3TE/Mj2GtNyT/PP7HYT5ONdPi9gb2OhaHtR6OvN19sXX2ZexfmMbbL/mh2ssPlq/Q3Q24BYARRnWjkQIIUQrxo0bR0ZG7/y3uvcU0ZrQNK1A07TbNE0Lby4BN7Z5V9O0EZqmjfDxsfJH273IxAhvqms1NhwoaLHNoYIyCkorGRFifrI7LMid/JIKMgtPAZC0L5+pL6/m2y2Z3J4QzpK7xncoAQfQ2+h485rh9HO152+fJXO0uLxD5xHWF+UZRVphGprWAz4dcA+WnnAhhBBdpqck4VmA6STSAcZtopvFh3jgoNfVTwvYnGXbsg1tzagHr1PXO71ufz7/WrSD2R9swMHOhm/njuPBqQNanebQHB7Odrx33QhKKqq59bNkyqtqmm1XVlnN0m3ZLDXeg+hZoj2iOVl5ktzSXGuHYqgLL+ydvStCCCF6vp5SjrIJiFRKhWJIvmcBV1s3pDOTva0No0ObX8K+plbj2Z92896agyRE+xDh42L2eaN9++Cg1zHvO8PyszdPCOUf50fjoLdcOcYAX1deuiKO2z5P5uHvdvDiFUNRSlFeVcOqtDyWbs9hxe48ThkT9GAvJ4YEnKZLrvdS0Z6GFdHSCtPo79LfusG4B0NpHlSdAn3vGnEvhBAtMS0LFZ3T2U9trTFF4QIgAfBWSmUCj2ma9oFS6k7gZwwzonyoaVpqd8cmDCZGevPUD7vJLjpVvyDOyfIq7vkyhRV78rh+bDCPXjgQXRtziZvS2+iYGOlDWu5J/u/yoYwK9eyS2KfG+nLfuVG8/NteXB31FJVV8uuuo5RW1uDlbMdl8f5MGejL379O4T9Ld/HNbWPlH6MeJMojCoC042kkBCZYNxgP41zhRUfAJ8q6sQghhAU4ODhQUFCAl5eX/N/XSZqmUVBQgIODQ4fPYY3ZUa5qYfuPwI/dHI5ohmEJ+90k7cvnipGBHC4o4+ZPN7H/WClPXhLLtWOCO3Tet2fHo1N0+V/8u86JYE9uMR+vO4S7k57EoX5cOMSPMWGe9XOJ/+O8aOZ9t4Nl23NIHOrXpfEI8znrnQlwCSCtMM3aoZhMU5ghSbgQ4rQQEBBAZmYmx441/bRbtJ+DgwMBAR2fla2nlKOIHiSqnwt9+9izet8xgrycmPt5MrUafHrjKMZHeHf4vG2twmkpOp3iv7PiuDnrBEMC3NE3s4jP5SMC+XR9Bs/+tIcpA/tZtCxGdE60ZzR7C/daO4yGSbgQQpwG9Ho9oaFtr3QtukdPGZgpehClFBMivfl9dx7XfrABD2c7Ft0xvlMJeHezt7UhPtiz2QQcDG8IHr1wIFlFp3h/zYFujk60JtojmsPFhymrKrNuIC6+YGMnM6QIIYToEpKEi2adHeXDqaoaxoR58f3t4wn1drZ2SBY3NtyLqYN8eXPV/janNTxaXM7lb6/jrVX7uym6M1eUZxQaGvuK9lk3EJ0O3AJlhhQhhBBdQpJw0azEIX58cfNoPpozEjdHvbXD6TL/vGAA1TUazy9vuQb5cEEZM99ex6ZDhfz3t70yD3kXi/YwzpByvIfUhUtPuBBCiC4gSbholk6nGBfhXT+Q8XQV7OXMDRNC+HZLJtszi5rsT8s9ycy313GyvJrXrhpGTa3GGyvTrRCpeT77M4M/9vbuATf+Lv646F16Rl24R7DUhAshhOgSp3eGJYQZ7pwUgbeLHf9ZuqvBnJ8pR4q48t31AHz9t7EkDvXj8hGBLNh4mMxCK9crN6O8qoYnl+3i1d+tXMbRSUopojyiek5PeFkBVJRYOxIhhBCnGUnCxRmvj4Oef5wXzeaMQn7YkQPAuvR8rnnvT1wd9Cy8bRxR/foAhukPFYrXfu95veHJGYVUVteyPbOIsspqa4fTKVEeUewt3EutVmvdQNyN03GeOGLdOIQQQpx2JAkXAsOUhTH9XXnmxz0s3ZbNnI834e/hyMLbxhLk5VTfzs/dkatHB7FwSyaH8kutGHFTSen5AFTVaGzJaFpa05tEe0ZTVl1G1sks6wZSl4TL4EwhhBAWJkm4EBimLPy3ccrCuxZsJaa/K1/dOpa+rk1Xwrp9Ujh6G8UrPazsY116PjH9XdEp2HCwwNrhdEr94ExrL9pTP1e4DM4UQghhWZKEC2E0NtyLa0YHcd7Afvzv5tF4ONs1265vHweuHxfCopQs9h092c1RNu9EWRXbs05w/qB+DPZ3Y8OB49YOqVMiPCLQKZ31k3CXvmDrIIMzhRBCWJwk4UKYmH/pYN69bgQu9q0vJnvbWeE429ny8m9dM4PHTztyeG75HrPbrz+Qj6bBhAhvRod5kXKkiPKqmi6JrTs42joS1CfI+oMzlTJOUyhJuBBCCMuSJFyIDvBwtuPGCaH8uCOXnVknLHruLzce5vYvtvDWqv2k5ZrX0742vQBnOxuGBrozOtSTyppathwutGhc3a1HLV8v5ShCCCEsTJJwITropgmhuDnqeflXyyWKn64/xLzvdjAm1AudgqXbss06bm16PqPDvNDb6BgR4olS9PqSlGiPaLJKsjhZaeWSH/dgGZgphBDC4iQJF6KD3Bz13HpWGL/vybNIr/N7qw/w78WpTBnYj49vHMn4CG+Wbs9uMHd5c7KLTnEgv5TxEd71cQ3s79r7B2d6GgZnWr033D0Iyoug3LKfeAghhDizSRIuRCfMGReCl7MdL/3SuUTxtd/3Mf/H3Uwf3J83rxmOva0NiUP8yCgoY0cb5S5rjVMTjo/wqt82JsyLrYeLqKjuvXXhUR5RQA9Yvt7DOE1hkcwVLoQQwnIkCReiE5ztbZmbEE5Sej4r0/Lafbymafzfz2m8+OteZgzz55VZcehtDH8tzx/ki95GtVmSsjY9H28XO6KNCwoBjA71pKK6lm1Hem/vbT+nfrjZu/WMnnCQwZlCCCEsSpJwITpp9phgIvq6cMf/trD5kPl12Jqm8fSPu3l9ZTqzRgbywuVDsbX566+km5OesyJ9+GF7DrW1zZekaJpGUnoB4yO8UUrVbx8VaqgL//NA7y1JUUoR7RFt/Z7wugV7ZHCmEEIIC5IkXIhOctDb8MXNo/F1deD6DzeSnNF2fXhZZTX3fJnCe2sOct3YYJ6+dDA2OtWkXeJQP7JPlLdYc773aAn5JRWMD/dusN3dydAz3tvrwqM8okgvSqem1oplNU5eoHeWJFwIIYRFSRIuhAX0dXXgi1vG4NPHnjkfbiTlSMvLxh/KL2XGm+tYuj2bB86P5omLBqFrJgEHOHdgP+xtdS2WpNTXg0d6N9k3JsyL5IxCKqtrO3BHPUO0ZzTlNeVknLRiKUjdXOEyQ4oQQggLkiRcCAvxdXNgwa1j8HC249oPNrA9s2ki/vvuoyS+nkRucTmf3DCKOyZFNCgjaczF3pbJMX35YUcO1TVNk+m16fmEejvj7+7YZN+YME/Kq2rZkdXyG4Kerm75+r3He0BduPSECyGEsCBJwoWwoP5ujiy4dQzuTnpmv7+hfiGfmlqNl35J46ZPNhPs5cTSOydwVpSPWedMHOJHfkklGw42rDevqqnlzwMFjAv3ava4UaGG7X/24vnCw93DsVW21l++3iPYMDCzjekihRBCCHNJEi6Ehfm7O7LgljH0cdBzzfsbWLc/n5s+2cSrK9K5PD6AhbeNI9DTyezzTRrQF2c7myYlKdsziyitrGFCRNNSFABPZzui+rn06sGZdjZ2hLiF9IDBmUFQUWyYL1wIIYSwAEnChegCAR5OfHnrGJztbLj6vQ2sSy/g6UsH8/zMITjobdp1Lge9DVMG9mN5am6D+u6kfQUoBWNb6AkHGB1qqAuvaqaUpbeI9oy2fk+4zJAihBDCwiQJF6KLBHo6seDWMVw01I+v/jaGq0cHtVr/3ZrEoX4UlVXVD8QEQz14rJ8b7k52LR43JsyLssqa+rKY3ijaI5q8sjyKOtALnVdczvdbMzsfRN1c4TI4UwghhIVIEi5EFwr2cubVq4YxLMijU+eZGOmDq4NtfUlKaUU1W48U1i9V35JRoZ4ATerJe5O6wZkd6Q1/5fd93PfVNrKLTnUuiPoFe6QnXAghhGVIEi5EL2Bnq2NabH9+2XWU8qoaNh46TlWN1mI9eB2fPvaE+zj3mLrw4vIqPl57kA3tiCfKs2PL19fUavycehSg2Zlq2sXRA+xdJQkXQghhMZKEC9FLJA71o6SimlVpeazdl4+drY4RIW33sI8O82LzocJmpzhsy8aDx0l8LYn8koqOhFzvaHE5z/y0m/HPrODxpbv416KdZh/r7eiNl4NXu3vCNx86Xh/3tsxOluPUzRUuS9cLIYSwEEnCheglxoR54u1ix9JtOazdX8CIYA+zBnmOCfOipKKaXTnF7bpeeVUNDyzcxo6sE3y3pWN11el5J3lw4TYmPLeC91Yf4OxoH24cH8q+vBLSck+afZ5oz2j2FrZvrvCfduZib6sj3MeZba0snmQ2mStcCCGEBUkSLkQvYWtjKEn5dfdRducUt1kPXmdMXV14O+cLf/X3fWQUlOHr6sDC5Ey0dsyRnZ5Xws2fbObcl1azZFs2V40KYtU/JvH61cOZmxCOTsGy7c2vAtqcaI9o9hftp6q2yqz2tbUaP6fmclaUD2PCvNiReYLa2k7O8e0ebBiYKXOFCyGEsABbawcghDBf4lA/PvvTUBLRVj14nb6uDoR6G+rCbzkrzKxjducU8+7qA1weH8CwIA8e/n4HO7JOMCTAvc1jNU3jni+3cuR4GfdMjuS6scF4udjX7/fpY8+YMC9+2J7D/VOizJoxJsoziqraKlYfWU1An4C2488t5mj5Aa6LiKaqppRSDvP7gRSC2jE/exOOTqAqIXsjOLb9HCzFy9ELb0fzftZCCCF6D0nChehFRgR74OvqQFllNbH+bmYfNzrUkx925FBTq2Gjaz3pranV+Od3O3Bz1PPwBTHodIonlqayMDnTrCR806FCUrOLefrSwVw9OqjZNhcO8ePh73ewK6eYQX5t38cgr0EA3Lvq3jbb1nEOgzf3/fX1/WvNPrRl/v3ht5stcCLz2epsmRU9i1uH3IqHQ+dm2RFCCNFzSBIuRC+i0ykevXAgJ8ur2kymTY0O8+TLTUfYnVPcZvL++Z8ZpBwp4pVZcXg4G+YgP3+QL4tTsnlkegz2tq3XoX+09iDuTnouHebfYpupsb48ungny7bnmJWEh7qF8tH5H3Giou0Blhoajyzaga+rI3efE0mtpnHPV1sZH+7NrJHNvykwS1EG/PwwjLsLAsd0/DztoKGRlJXEF3u+YFH6Im6IvYHZMbNx0neiR18IIUSPIEm4EL3M9CH9233M6FDDqppvrdrPC5cPwcmu+b/62UWneH75Hs6K8uGioX7122fGB7BkWzYrducxbXDL188sLOPn1FxuPSscR7uWk3VPZzvGhRtKUh48P9qskpQRviPabAOwM+sER3MquH/cYCYHG5LuWDdnjh2tZXLweLPOsSotD3tbm4arkfY7Ad/fB8oFgiebdR5LODf4XK4beB2vbHmF17a+xpd7vuT2uNu5JOISbHXyT7gQQvRWMjBTiDOAn7sj950bxY87c7jw1aRm583WNI1/L06lRtOYf0lsg8R4fIR3/QDN1ny2PgOlFNeODW4zpsQhfhw+XsYOC6/m+dPOHGx0iikDfeu3DQ10Y1dOMZXVbU/TWFur8Y9vtvPE0tSGOxzcwMHdKjOkhLmH8co5r/DptE/xd/HnifVPMGPJDLbmbe32WIQQQliGJOFCnCHuOTeSL24eQ1llDTPeXMdbq/Y3mDHk59Rcftt9lPunRBHYaACjjU5x6XB/Vu09Rt7J8mbPX1ZZzYKNhzl/UD/83R3bjOf8Qb7obRTLtud07sZMaJrGTztyGRPmiaexlAZgSIA7ldW1Zk2LuCunmPySCtKOnqS4vNFsLO5BVl26fljfYXw67VNemfQKZVVlPL3haavFIoQQonMkCRfiDDI23Ivl907kvEH9eG75Hq55fwM5J05RXF7FvxenMrC/KzeOD2322MuGB1BTq7F4a/NTC363JYvi8mpuaOH4xtyc9EyI8OaH7Tntmv6wNXuPlnAgv5SpsQ1LZuICDQNKt5mxcubKPXmAYSbCrYcbte8Bc4UrpTgn6BwuCr+I9MJ0Kmo6t5CSEEII65AkXIgzjLuTHW9cPZznLxvCtswipv53Dbd/voX8kgqevWwwtjbN/7MQ0deFYUHuzc4ZrmkaH687RKy/KyOCzZ/B48IhfmQVnWKrJRbTwVCKohScP6hfg+0BHo54OOnNWrRn1d5jRPR1wUan2Hyo0dzqHiGGJLwHzBUe4xVDtVZNemG6tUMRQgjRAZKEC3EGUkpxxchAfrh7IsFeTiSl53PD+NA2pyCcGR9A2tGT7MxquPpmUno+6Xkl3DAu1KxBlnWmDOqHnY2OZdtaL0nJOXGKGz7ayNr0/FbbLd+Zy8hgT/r2cWiwXSnF0EB3trexfH1RWSVbDxdyQawvg/xc2dQ4CXcPgupTUHqs1fN0hxjPGAB2Hd9l5UiEEEJ0hCThQpzBQr2dWXjbON67bgQPTo1us/2FQ/yws9XxbaNl7D9aewhvF3suHNq+mVtcHfScFeXDjztyWlzRsryqhr99lszKtGPc/MlmkjMKm2134FgJe3JPMjXWt9n9QwLc2Zd3ktKK6hbjWb0vn1oNzo7uS3ywBylHiqiqMRnM6W4ccNoDlq/3d/Gnj10fdhfstnYoQgghOkCScCHOcHa2OqYM7Nfm/N8Abo56zh/ky6KULCqqawA4mF/Kij15XDM6yKxzNJY4tD+5xeUkH26aXGuaYeGg7ZkneGbGYPq52nPDRxvZnVPcpO1PO3MBWkzChwa4UasZpjBsyaq0PNyd9MQFujMyxJPyqlpSs02u5W6cZ7zwkPk3CFTV1LL1cGGLbzQ6QinFQM+BkoQLIUQvJZPMCiHaZWZ8AEu3ZbNyTx5TY/vzybpD6G0U14zp2EI4k2P6YW+rY9m2bEaGeDbY90HSQb7fmsX9U6K4alQQEyO9mfnWeq79YCMLbxtLiLdzfdvlO3OJC3THr4WZWepKbbZnnmB0mFeT/bW1Gn+kHeOsSB9sdKq+tn3zoeP1Azvrk/Ctn8OxPWbd3+HjZazee4zjZZWcDHBnYqR3u0p2WhNTWsQXJ/dR9ft/0CsL9KnoHWHM7YY/hRBCdClJwoUQ7TIhwpt+rvYsTM5kXIQ332w+woVD/JrUYZvLxd6WSdF9+XFnLv9OHFS/Euiafcd4+sfdTB3ky52TIgAI8HDi85tHccU7f3LN+xv4du44fN0cOGKcb/yf0wa0eB2fPvb4uzuS0sIMKTuzT1BQWsmkAT4A9HV1IMjTiU2HjnPzxDBDI3sX8I+Hg38YXq3QMIzf9Nc0rlIKZQtajoaWq7BQDk6MsyOVPl4c2PA60VVVbR/QGk0DNPCKhIEXWSQ+IYQQLZMkXAjRLjY6xaXDAnhvzQHeWrWf0soabhgf0qlzXji0P8tTc9l48Dhjw73IKCjlzi+2Etm3Dy9eMRSd7q+sNaJvHz65YRRXvfcnsz/YwNd/G8tyYynKtNjWa9KHBro1u1ARwKq0YygFZ0X61G8bEeLBH2nH0DTtr97rW1a0eo3SimreXJXOe2sOYqtT3DEpgpsmhGJno+Ohb7ezMDmTf184kBsnmDeVY2tiThyERRex+4p3iY64pHMnqyiBZ/yhYF+n4xJCCNE2qQkXQrTbzHh/amo13lq1n/hgjzZnVWnLOQP64qi3Ydn2bEoqqrnl080oBe9dNwJn+6Z9BYMD3Hj/+hEcOV7GnI82snhbFoP8XAnycmrm7H8ZEuDOkeOnKChpOrf2yrQ8hgS44+ViX79tZIgnBaWVHCooM+s+lm3PZvKLf/DGyv1cEOvLir8ncMekCBz0Nuh0imdnDGbqIF/+s2xXm6uPmiPYNRgnWyfL1IXbu0AfP8iXKQ+FEKI7tJmEK6WclFKPKqXeM34fqZS6sOtDE0L0VBF9+9TXSXe2FxzAyc6Wc2L6snxnLvd/lcL+Y6W8cfXwVpPqMWFevHnNcHZlF7Mzq5hpLQzINDW0ri680eDM46WVpBwpIiHKp8H2urrwJlMVNmN3TjF3frEV7z52fDt3LP+dNQxft4YlOrY2Ol65Ko4JEd489O12fk7NbfO8rdEpHQM8B7D7uIUGZ3pHSE+4EEJ0E3N6wj8CKoCxxu+zgKe6LCIhRK9wx6QIzhnQl/MHtZ38miNxSH8KSiv5ZddRHr4ghvER3m0eMzmmHy9eMZRQb2cujvNvs/3gADeUgu1HGibha/YdQ9MgIbphEh7u44K7k77poj3N+HrzEexsdHx242jigz1bbGdva8M718YzJMCNu77Y2ubc522J8Yphz/E91NTWdOo8gKEePH9fj1iMSAghTnfmJOHhmqY9D1QBaJpWBlhoWJEQoreaMrAfH84Zib6FFTbbKyG6L/3dHJg1MpAb29G7fnGcPyv/kUCgZ+ulKGAYBBru49Jk+fpVacfwdLZrUlajM86SsvlQ83OT16msrmVxSjbnDuyLh7Ndm3E429vy0ZyRhHo7c8unm9nSzPSM5orxjOFU9SkyTmZ0+Bz1vCOhvAjKCjp/LiGEEK0y53/PSqWUI4bB/iilwjH0jAshhMU46G3444FJPHvZEItN4decoQHubM8sQjP29tbWavyx9xhnRXrXz8xiakSIJwfyS5utI6+zYs9RjpdWcnl8oNlxuDvZ8dlNo/DpY88NH21qdf7y1sR4GVbOtEhduFek4c98KUkRQoiuZk4S/hiwHAhUSv0P+B14sEujEkKckexsu36s+NBAN/JLKskqOgUY6sOPl1YyaUDfZtvXzxfewkqdAN9szqRvH3smRrZdQmOqr6sDn980Ghd7W2Z/sIHU7PYn4mFuYdjb2FsoCQ83/Cl14UII0eXa/B9P07RfgRnAHGABMELTtFVdG5YQQnSNoSaL9oBhlUylYGKkT7PtBwe4YWera7EuPO9kOav2HmPG8ABsO1CaE+jpxIJbxuCkt+Ga99ufiNvqbInyiLLM4Ez3ILCxl55wIYToBubMjnIWMAg4CRQDA43bhBCi1xnQvw96G1VfF74y7Rhxge54tlDLbW9rw9AAtxZ7whdtzaKmVuPyEQEdjinIy4kvbx1bn4jvyi5u1/ExnjHsLthdX2LTYTob8AyDApmmUAghupo53TYPmLweBZYCj3dhTEII0WXsbW2I6e/KtiNFFJRUsD2ziISo5ktR6sQHe7Iz6wSnKhvOQKJpGt9szmR4kDvhPi6diss0Eb/6/T/blYjHeMVwsuokmSWZ5JdUcPv/kvl605GOBeIdIT3hQgjRDcwpR0k0eU0BYoGOD+UXQggrGxrgzs6sYlalNT81YWMjQzyoqtGazKqyLfME+/JKuHyE+QMyWxPk5cSCW8fgqLfhmnYk4nWDM3/Zl8xFryXx445cHluSSs6JU+0PwisSCg9CTVX7jxVCCGG2joyCygRiLB2IEEJ0lyEBbpRUVPPh2oN4Odsx2N+t1fbxdYMzG9WFf7P5CA56HdOH9LdYbMFeznx56xgcjIn47py2E/FI90h02PDiHysAeHv2cGo0jWd+3NP+ALwjobYaig63/1ghhBBmM6cm/DWl1KvG1+vAGmBL14cmhBBdo261z9TsYs6O8kHXzNSEptyd7Ijs69KgLry8qoYl27KZOsgXVwe9ReML9nJmwS2GRPziN9Zy/9cpbDlc2GzNd02txou/7KeqvC+ubnksuWsCU2P7c9tZYSzZls3Gg20vNNSATFMohBDdwpye8M1AsvG1HnhI07TZXRpVG5RSMUqpt5VSC5VSc60ZixCi9wnzccHZzgaAhBamJmxsRIgnyRmF1NQaEuGfU3M5WV5tsVKUxkK8nVk4dxyzRgbyS+pRZry5jgtfS+LLjYcpq6wG4ERZFTd+vIl3/jhAaJ9o7Jyy8TIOMJ2bEIGfmwOPLUmtj9ks3hGGP2WaQiGE6FLm1IR/YvL6n6ZpaztzQaXUh0qpPKXUzkbbpyql0pRS6UqpeW3EtFvTtNuAK4DxnYlHCHHmsdEpBge4oVNwlplze48M8eBkeTV7j54EYGFyJv7ujowN8+qyOP3dHfnPxbH8+fBknroklppajXnf7WD007/z2OKdXPLmWtbtz+fpSwcze/g4CisKOVp2FABHOxsemT6Q3TnFLNjYjtISRw9w8paecCGE6GK2Le1QSu3AuEpm412ApmnakA5e82PgdeBTk2vZAG8AUzDUnG9SSi0BbIBnGh1/o6ZpeUqpi4C5wGcdjEMIcQabMy6UUaFeuDu1vcw8wMgQT8BQF+7qqCcpPZ+7zromTPsAACAASURBVIlss5TFElzsbZk9JphrRgexOaOQz9Zn8MXGw7g56vniljGMDPEkJc9QdrK7YDe+zr4AXDDYl7FhXvzfL2lMH9wfjxamYWzCO1KmKRRCiC7WYhIOXNgVF9Q0bbVSKqTR5lFAuqZpBwCUUl8CF2ua9kxLcWiatgRYopT6AfiiK2IVQpy+psb6MjXW1+z2AR6O9O1jz+aMQk6cqkLT4PL4js8N3hFKKUaGeDIyxJMTZbHY2epwNJbVRHlEoVM6dh/fzaSgSfXtH7toINNfTeKlX/fy5CWx5l3IKwL2/txVtyGEEIJWknBN0zK6MQ5/wHRS20xgdEuNlVIJGFbxtAd+bKHNrcCtAEFBQZaKUwhxhqpLgDcdPM62I0WMCfMk0NPJavG4OTUcDOqkdyLUNZRdBbsabB/g68q1Y4L5dP0hrhoVxEA/17ZP7h0JWz+D8hPg0PrMMUIIITrGnNlRxiilNimlSpRSlUqpGqVU+5ZzszBN01Zpmna3pml/0zTtjRbavKtp2ghN00b4+LQ+B7AQQphjRIgH2SfKOVRQxuXxXTMgszNivAwrZzZ237lRuDnqeXxJqnmranoZB2fmS0mKEEJ0FXNmR3kduArYBzgCN2Oo37akLMD0f7QA4zYhhOgxRgQb6sKd7WyYNtj8UpbuEuMZQ96pPPJP5TfY7uak54HzB7Dx0HGWbs9p+0R10xTKDClCCNFlzFqsR9O0dMBG0/6fvTuPj6o8+z/+uTLZJ8kMkARIIICsAgoKgru4VWxF1NoW3PqorfVpq9an7a+1q7WLta1t3VprF+tS19ZWXOqG4gZVQUFlXwTZd7JB9vv3x0xogGRyAjkzk8z3/XrNa5gzZ+ZctKhf7lznul2jc+5eYHIn1/EOMNTMBplZJjANmNHJ1xAROSSH982nR24G544tJTcz1i01idG8c2Zrq+GfO6Y/o0sL+Nkzi/eOOGxTj4FgAU1IERHxkZcQvjsajOeb2S/M7HqPn2uVmT1MZN74cDNbZ2ZXOucagK8CzwOLgceccwsP9hoiIn5ID6Tx7HUn8cMpIxNdSqtG9BwBwOIdB4bwQJrxo3NHsamihh8+2U5bSnpmJIhrJVxExDdelnIuJRK6vwpcT6Rt5NMHe0Hn3PQ2jj9LGzdZiogki76hnESX0Kb8zHzK8staXQkHGDegJ9eePpTbZy7nsKI8/nfS4La/rHCoesJFRHzkJYSPA55xzlUAP/K5HhEROQSH9zqcD7d92Ob7158xlI+2VXPLc0sYVJjL5NF9Wz+x1xBYNQuamiDtoH/4KSIibfDyb9YpwDIze8DMzjGz5GuEFBERIHJz5vqq9ZTXlrf6vpnxywuP5KiyMF97dD7vr9vV+hcVDoWGGqhYd9C1zFq6hWc/8HAjqIhICvKybf3lwBDgcSJTUlaa2Z/8LkxERDpu782ZrfSFN8vOCHDPpeMpzMviyvvmsmHXngNPap6QcpA3Z9Y2NPKNxxfwjccXUL6n/qC+Q0SkO/O0qu2cqzezfxPZxj4HOI/IqEIREUkih/eMhPCHFj/Ewm2x72+fcnItD85Zw2ceeZVLji0jM9BiXaauCkL5sOxR2LO6w3V8uL6ciqyNkAXfeukDjhnYs8Pf0VHhrDAXDL0AM/P9WiIih8ra27jBzM4GPgdMAmYBjwEvRCeadAnjx493c+fOTXQZIiJxMe3paSzcnpoDpv4+5e8M7zk80WWISAozs3nOufHtnedlJfwy4FHgS8652kOuTEREfPXQpx6irrHO+/lvf8xNTy3i88cN5IZPjvjvG/eeDZl5cPHjHbr+3NU7ueTPb/Gjc0cRysnga4/O53cXH81pI4rb/Wx9YxO/eG4pZ4/uw9EDeni+5uIdi7ns35exvmq9QriIdAnthvC2RgqKiEhySrM0stOzPZ9/xfHDWLu9nnvfXM07H1Xy2fH9OO+oUsK9hsHqN6AD3wXw4JwNhHNy+ey4w0gPGLf8eyUP/Wcjnxxd1u5nH317NQ/M2cCLC3fw/PUnE8rJ8HTNgQUDAdhQtaFDtYqIJIrmTomICN/71Eh+ev5o0tLgxqcWMeFnM3l6Qy5UrKOppsrz96zdsZsXFm1i+oQycjIDZATSuOTYAbyxYhvLN1fG/Gz57np+89IyhvfOZ2tVLT95epHn64azwuSk57C+ar3nz4iIJJJCuIiIEEgzLp44gKevOYlnrj2R6cf055VtIQCu+M2j/H7WSpqaYt9DBHD/nNWYGZcdN2DvsekTyshMT+Ovs1fH/OztLy+nfE89v/ncWL508mE8Pm8dryzd4ql+M6M0r7TVlfC3P9rBz55d7Kl+EZF48RTCzSzHzNRkJyKSAkaVhPjR1NH87AsXAHBU7lZueW4Jv3lpWczPVdc28Mg7azl7dJ99dhbtGczkvLElPPHuesp3tz6ucNXWKu6bvZppx/RnZEkB150xlKHFedzwjw88jzgsySthQ/W+IbyqtoFrH36Pe15bxfMLN3n6HhGReGg3hJvZFGA+8Fz09Vgzm+F3YSIiklhZvYcCxrVj4LPj+3HHyyt47sO2g+w/3l1HZU0DV5w46ID3Pn/8QPbUN/LY3LWtfvZnzy4hOyPA/50ZWe/JSg/wq8+MYWtVLT99xltbSkmw5IB2lN++uIxNFTUU52fx25eWazVcRJKGl5XwG4EJwC4A59x84MB/w4qISPeSkQOh/tj2Fdw0dTRj+of5+mPzW+3tbmpy3Pvmasb2D3N02YFTTUaVhJgwqCf3zVlN435BePaKbby0eDNfPnUwRflZe4+P6R/mSycfxmNzvbWllOaVUllXSUVdBQCLN1Zw7+zVTJ/Qn+9+6nCWbq7k2Q+1g6eIJAcvIbzeObf//sdaShARSQWFQ2DbcrIzAtx9ydHkZAa46oF5VNTs2yIya9kWPtpWzeUnDGzzqy4/fiDrdu5h5uLNe481NjluenoR/XrkcMUJB67vdKQtpSSvBICNVRtpanJ8958fEMrJ4FuTR3DOkSUMLc7jtpeWH/CXABGRRPASwhea2UVAwMyGmtkdwGyf6xIRkWTQayhsXwnO0TeUw+8uHsfaHbu5/pH5+7R23PvmanoXZPHJI/q2+VVnjuxNSSh7nxs0H5u7liWbKrnh7MPJzggc8JnmtpQtlTXttqWU5pUCsL5qPY/NXcu7H+/ihrNHEM7NJJBmXHfGUJZvqeLp9zXGUEQSz0sIvwYYBdQCDwHlwNf8LEpERJJE4VCoq4SqyOr1hEE9+cGUkcxcsoXfzlwOwLLNlby+fBuXHTeQjEDb/1lJD6Rx6XEDmb1yO0s3VVJZU8+tLyzlmIE9+OQRfdr83Jj+Yb50yuB221KaV8JX7FjLz59bwoSBPblwXL+9739ydF+G987n9plaDReRxGs3hDvndjvnvuucOyb6+J5zriYexYmISIL1GhJ53rZ876FLjx3AheP6cfvM5Ty/cBP3vrmarPQ0LprQ/mY8047pT1Z0XOHvZq1kW1Ud3/vUSMws5ue+1qItZVN56/8Jap4V/tTCD6mqaeAn54/e53vT0oyvnTGUlVureWqBVsNFJLG8TEd50czCLV73MLPn/S1LRESSQuHQyPP2/4ZwM+Mn543myH4hvv7YAp54dx0XHF1Kj2Bmu1/XI5jJ+UeV8s/31vHnNz7igqNKGdM/3O7nmttSduyu47RbZ3Hny8upqW/c5xwzo0dmb5bvWMuVJw1iWO/8A77nrFF9GNEnn9tmLqehsand67ZlzsrtrN+156A/LyLipR2l0Dm3q/mFc24nUOxfSSIikjTySyAjF7at2Odw5EbNcWSlp1Hb0MTlrdxU2ZbPHz+QmvomAmZ8c7L3LSjG9A/z4vUnc/LQIn71wjJOv/VVnlqwAecirSX1jU1s3xUkK7uca08b2up3RFbDh/HRtmqenH9wq+H//mAj0//4H0771SxufWEp1bUNB/U9IpLavITwJjPb+zNGMxuApqOIiKSGtDToNXiflfBmJeEcHrhyIrd+Zkyrq85tObxvAZefMJDvnzNyn019vBjQK8jdl47j4S8eS0FOBtc8/B4X3j2HBWt38dc3V1NZlU9WTjnBrPQ2v+OsUb0ZVVLA7S93fDV86aZKvv74Asb0DzN5dB/ueHkFp906i3/MW6cZ5CLSIda8gtDmCWaTgXuAVwEDTgKucs51mZaU8ePHu7lz5ya6DBGRrunx/4EN8+G6+YmuZB+NTY6/z1vLL59fyraqOjICxtChc1lrjzN7+mzyM9v+i8GLizbzxfvn8osLj+Sz4/t7ul757nrOvesNdtc18vQ1J9K7IJt5a3Zy01MLWbCunDH9QvxgykjGDejZWb9FEemCzGyec258u+e1F8KjX1YIHBt9+R/n3LZDrC+uFMJFRA7Byz+F138FJ1xHZC0mudQ2NvHump2s2b6b7GGNfL9qLn8vPoPhGW33mjvg8XnrqK1vZPqFnyV9xOSY12hsclz+13eYs3Ibj1x17D5Bu6nJ8a/567nluSVsrqhlypgSzhrVm2G98xnYK0hmupcfOotId9HZIbwUGADs/fmec+61Q6owjhTCRUQOwUevwUPToLEu0ZW068PMDKb3LeT2LTs4dU9tzHObABob2J1bQt63Ys8g//m/l3D3qyv52flHcNHE1qfAVNc28IdXV3LP66uoqY+0uaSnGYMKgwzrnc/Q3nkcXdaDk4cVHcxvTUS6iE4L4WZ2C/A5YCHRf2cBzjl37iFXGScK4SIiqWFHzQ5OefQUvj3h21x8+MUxz3XO8fgvv8QF1Y/zozEvc9Wk4fTvmXvAeU+/v4GvPvQeF00s42fnH9FuDTX1jazcWsXyzVUs21wZfVSxdudunIO7LzmayaPb3tRIRLo2ryG87TtX/us8YLhzLvaSgoiISIL1yOpBTnoO66vWt3uumXHWCRNJf/FR3pi3gIfnbuS8o0r5yqlDGFQYBGDRhgq++fj7jBvQgxunjPJUQ3ZGgFElIUaVhPY5vruugXPueINfv7iMM0f2IZDmrbXnl88v4b2Pd3HfFRNiboYkIl2Ll3+aVwEZfhciIiJyqMyMkmAJG6q8jR8M9R0MwN+nl3LJsQN4asEGTr91Ftc+/B5vf7SDLz04l4KcdH5/8dGH3Nudm5nO9WcMY9nmKp5+31t9izZU8PtZK5m9cjv3zV59SNcXkeTi5d8ou4H5ZvYHM7u9+eF3YSIiIgejJM97CCc8AIBedZu48dxRvPGt0/jiyYcxc/FmPvuHOWwur+XuS8ZRXJDdKbV96oi+jOiTz29fan88onOOHz+9iIKcDE4Y0ovfvLiszd1CRaTr8RLCZwA/BmYD81o8REREkk5JXgkbqj2G8FA/sDTYtQaAovwsbjj7cN741ml886zh3HXx0RxV1qPTaktLM64/M7JZ0BPvxW6ZeWHRZuas2s7/nTmMm88/kvomx0+eiX0DqYh0He32hDvn7jOzHKDMObc0DjWJiIgctJK8Espry6mqqyIvMy/2yYEMKCiFXR/vc7hHMJOvnDrEl/o+MbI3R5SGuH3mcs4bW9pqm0ttQyM/e3YxQ4vzuGhCGemBNL48aTC/fWk50yds44QhhQd9feccc9fspE9Bdqs3oopIfLS7Em5mU4D5wHPR12PNbIbfhYmIiByMkrwSAO+r4eEBsHONjxXty8z4+ieGsW7nHh6bu7bVc+6bvZo123fz/XNGkh69GfPqUwYzoFcu33/yQ2obGg/q2tW1DVzz8Ht85u45nPSLVzj91ln89JlFzF6xjbqGju0eKiKHxks7yo3ABGAXgHNuPnCYjzWJiIgctNJgKUAH+sLLDlgJ99spw4oYN6AHd768gpr6fQP1tqpa7pi5gtNGFO8zUzw7I8CN545i1dZq/vT6Rx2+5kfbqjn/d2/y7Acbuf6MYXz/nJGUhHO4b/YaLvrTWxz94xe5+oF5PDl/PV72EBGRQ+NlRGG9c67cbJ9RSvrrsoiIJKXmlXAvYwoB6DEAKjdCQy2kZ/lY2X81r4Zf9Me3eOitj7nixEF737v1hWXsqW/ku586/IDPnTq8mLNG9eaOl5czdWwJ/Xp4ayd5cdFm/u/R+aQHjPuvmMiJQyPtLFeeOIjq2gZmr9zOy0u2MGvpFp5buIlQTgaThhd3zm9WRFrlZSV8oZldBATMbKiZ3UHkJk0REZGk0zO7J9mB7A5OSHGwq/XWEL8cP7iQ4wf34nezVrC7rgGIjCR89J2Puey4gQwuar2f/QdTRmEYNz3V/k2ajU2OXz2/lC/eP5eBhUGeuubEvQG8WTArnTNH9ubmC45g1jcnkZsZ4KXFmw/9N+jB5oqavb93kVTjJYRfA4wCaoGHgHLga34WJSIicrDMrINjCqPb0O+KX194s69/Yhjbquq4b/aavSMJQzkZXHf60DY/UxrO4ZrTh/DCos28smRLm+ftrK7j8r++w52vrOBz4/vz+NXHtbtynpUe4IQhhbyyZKvvLSm1DY2cfdvr3Dhjoa/XEUlWMdtRzCwA3OSc+wbw3fiUJCIicmhK8ko61o4CCQnh4wb0ZNLwIv7w2kqK87OYs2o7P546ilBu7D3yvnDiYfxj3jp+OGMhxw3uRZoZK7ZUsWhjBYs2VLBoYzkL11dQ29DEzRccwfQJZZ5rOm1EMS8u2syyzVUM75N/qL/FNs1aupUd1XU88/5Gbpo6muyMgG/XEklGMUO4c67RzE6MVzEiIiKdoTSvlA+2feDt5Py+kJYR95szm339zOFMufMNvvn3BQwtzvMUmDPT0/jx1NFc9Ke3OP3WV9lSWUN9Y2TlOjsjjRF9CjhnTAkXTSjjiH6hDtVzarQXfOaSzb6G8BnzN5CeZlTXNTJz8RY+dWRf364lkoy83Jj5XnQk4eNAdfNB59wTvlUlIiJyCDo0KzwtENm0J45jCls6ol+IT4zszQuLNu8zkrA9xw8p5MuTBrNwQwVTxpQwsqSAkX0LGFQYJJBm7X9BG/qEshnZt4BXlmzhy5P8mZVeWVPPS4s3M21Cf15YuJkn569XCJeU4yWEZwPbgdNaHHOAQriIiCSllrPCh2UOa/8DPQYkbCUc4OefPpLPjN+5z0hCL/7f5BG+1HP64cXc9coKdu2uI5yb2enf//zCzdQ2NHH+Uf3ISg/wwJw1lO+ub7cNR6Q7afev2865y1t5XBGP4kRERA5GSTASwjdWbfT2gXBZQnrCm/UMZnLmyN4Ju/7+Th1RTJODV5dt9eX7n5y/nv49czi6LMzUsSXUNTbx3EKP/1+JdBNedswcZmYzzezD6Osjzex7/pcmIiJycDo8Kzw8AKq3Ql11++emgDH9wvQMZsacvnKwtlbW8uaKbUwdU4qZcURpiEGFQZ6c73GajUg34aXx7I/ADUA9gHPufWCan0WJiIgcil7ZvcgKZHVwVjhxnxWerAJpxqRhRby6bCuNTZ07qvDp9zfQ5GDq2MhflMyMc8eUMGfVdjZX1HTqtUSSmZcQnuuce3u/Y5qsLyIiSWvvrPBqjyE8gWMKk9WpI4rZubue+Wt3dur3Pjl/A4f3LWBo7/9OXjl3bAnOwVMLtBouqcNLCN9mZoOJ3IyJmV0IqHFLRESSWodmhe9dCU/czZnJ5uRhRQTSjJc7sSVlzfZq5q/dxXnRVfBmg4vyOKI0xAyFcEkhXkL4V4A/ACPMbD2R3TKv9rUqERGRQ1QaLPXejpJXDOnZsHO1rzV1JaGcDMYN6MHMxZ0XwmdE+76njCk54L2pY0t4f105q7ZWddr1RJJZmyHczK6L/rKvc+4MoAgY4Zw70Tmnn9eJiEhSK8krYVftLqrrPdxsaRadkKKV8JZOH1HMkk2VbNi155C/yznHv+avZ8KgnpSEcw54/5wjSzBDN2hKyoi1En559PkOAOdctXOu0v+SREREDl1pXilAB27OTOyYwmR02ojI7pmvLD301fCFGypYubWa88aWtvp+n1A2xw7qxYwFG3Cu7ZtB6xqaeGnRZuoamg65JpFEihXCF5vZcmC4mb3f4vGBmb0frwJFREQOxt4NezoyISVBu2YmqyHFefTrkdMpowpnLNhARsA4e3SfNs8576gSPtpWzQfry1t9v6a+kf99cB5fuH8uP5yx8JBrEkmkNkO4c246cBKwApjS4nFO9FlERCRpdXhWeI8BULMLaloPgKnIzDhtRDFvrthOTX1jm+fNWbmdP762qs3V6aYmx4z5GzhlWBE9gm3vwDl5VF8yA2mttqTsqWvki/fPZeaSLRw/uBcPv/0xD7+t9iHpumLemOmc2+ScGwNsAbKdc2uaH/EpT0RE5OB0fFZ4WeRZfeH7OHVEMXvqG/nPqu2tvv/chxu57C9v8dNnF3PeXW+ybPOBnatvr97Bpooazm2jFaVZKDeDScOLeGrBhn3mk1fVNvD5e9/mzRXb+NVnxvDAlRM5aWghP3xyIe993LkjFEXixcuOmVOA+cBz0ddjzWyG34WJiIgcig7PCteYwlYdd1gvsjPSWm1J+dd76/nKQ+9xRGmI26aNZXNFDefc8QZ/en0VTS1C9JPz15ObGeDMw3u3e72pY0vZUlnLW9HQX76nnkv//Bbz1uzktmlHceG4fgTSjNunHUVxQRb/++C7bK2s7bzfsEiceBlReCMwAdgF4JybDwzysSYREZFOURIs6fiumeoL30d2RoATBhcyc8mWfW6YfPjtj7n+sflMGNiTB66cyNSxpTx//cmcPLSInzyzmEv+/Bbrd+2htqGRZz/YxFmj+pCTGWj3eqcfXkwwM8CT8zews7qOi//0Hz5cX85dFx29z2jDHsFM/nDpOHbtqeMrf3uX+kbdqCldi5cQXu+c279BrnP3sBUREfFBSV4HQnhuT8jM04SUVpw6oph1O/ewYktkhvdf3viIG574gEnDirj38mMIZqUDUJiXxR8vG8ctnz6CBWt3Mfm3r/GjpxZRvqeec8ceOBu8NdkZAc4a3YdnP9zI9D/+h2Wbq7jn0vFMbuWGzlElIW759JG8vXoHP31mcZvfuaO6jt/PWsmvX1gac/KKSDylezhnoZldBATMbChwLTDb37JEREQOXUleCTtrd7K7fje5GbmxTzaLrIarHeUAzaMKX16yhRcWbeaXzy/l7NF9uG3aUWSm77ueZ2Z87pgyjjuskP97bD4PvfUxPYOZnDik0PP1po4t5Yl317Nm+27u/Z9jOCHGZ6eOLWXB2nL+8uZHHNkvxAVH99v73ofry7lv9mpmLNhAbfSm0bFlYU4b0X5bjIjfvITwa4DvArXAQ8DzwE/8LEpERKQztJwVPqTHkPY/EC5TO0orSsI5jOiTz50vr6CytoHzjyrllxceSXqg7R+ol/XK5dEvHceD/1lDcX4WGTHO3d8Jg3tx9SmDOXNkMeMG9Gz3/Bs+OYJFG8u54YkPOKwoj4937Oa+2auZt2YnORkBLhzXj4smlvHVh97j5meXcPLQopi1i8RDzBBuZgHgJufcN4gEcRERkS5j76zwao8hvMcAWP0GOBdZGZe9Tj+8mLteWclFE8v4ydTRpKW1/79PIM34/PEDO3yt9EAa3z57hOfzMwJp3HnR0Uy54w3Ou+tNAAb0yuV7nzqcz4zvTygnA4BvTR7O1Q++y+Pz1jF9QlmH6xLpTDFDuHOu0cxOjFcxIiIinal5JdzzrPBwGdRVwp6dkR5x2evLk4Ywtn8Pzji8GEvCv6BE+tHH85c3PmLKmBJOGVZ0wF8UzhrVh3EDevDrF5cxdWwJuZleGgJE/OHlZzHvmdkMM7vUzC5ofvheWQxmNsnMXjezu81sUiJrERGR5NXxWeHNYwrVkrK/YFY6Z47snZQBvNno0hC//txYTh1R3OpKvZnxnU+OYGtlLX987SPf6thYvofH566NucGRiJe/AmYD24HTWhxzwBMHc0Ez+wuRXTe3OOdGtzg+GbgNCAB/cs79PMbXOKAqWtu6g6lDRES6PzOjb7Bvx3bNhEhfeMlR/hUmCTNuQE/OHt2HP7y2kukT+1Ocn90p39vQ2MTLS7bwyDtrmbV0C00OtlTW8pVTPbRBSUpqN4Q75y7v5Gv+FbgTuL/5QLT3/C7gTCKh+p3ohkAB4Ob9Pn8F8Lpz7lUz6w38Gri4k2sUEZFuojSv9CB2zdRKeHf2/yaP4MVFm7ntpeX89PwjDum7Pt6+m0fnfszjc9expbKW4vwsvjxpCO+s3sFf3viIK08cRHZG+/PRJfXEvRnKOfeamQ3c7/AEYIVzbhWAmT0CTHXO3Uxk1bwtO4EsP+oUEZHuoSSvhHe3vMtNc27y9oHiPrDuOZiz/xYZXYthfHb4Zxnec3iiS0k6gwqDXDyxjAff+pjLTxjEkOK8Dn2+oqae5z7cxJPz1/Pmiu2kGZw6vJhpE8o4dXhk8sp/Vm1n2j3/4fG5a7n0uIH+/EakS0uWOxJKgbUtXq8DJrZ1crQn/SwgTGRVvbVzrgKuAigr0x3QIiKp6viS45m1dhYvf/yytw/kZkHNRvB6fpLaUbODQFqA70z8TqJLSUrXnj6UJ95dz8//vYQ/fX58u+fX1Dcyc/EWZixYzytLt1LX0ERZz1yuP2MYnz2mH31DOfucP3FQT44qC/OH11YxfUKZRiLKAZIlhHeIc+4J2ulJd87dA9wDMH78eG2PJSKSos4YcAZnDDjD+wcevQS2LoPPz/Ktpnj45BOfZFftrkSXkbR65WVx9aTB/PL5pby1ajsTD+t1wDk19Y3MWbmdpxZs4IVFm6mqbaAoP4uLJ5Zx7pgSxvYPt3mjqpnxv6cM5qoH5vHMBxuZOrbU79+SdDHthnAzywI+DQxseb5zzuPP9TxZD/Rv8bpf9JiIiEh8hQfA8pe6/KzwcFaYitqKRJeR1K48cRAP/mcNP3t2Mf/6ygmYGeW763l56WZeXLSZV5dupbqukfzsdD51RF/OHVvCsYf1IuBhRjrAGYf3ZkhxHr+ftZJzfIryeAAAIABJREFUx5Qc9GQZ5xwzFmwgM5DG2Uf0PajvkOTjZSX8SaAcmEdk10w/vAMMNbNBRML3NOAin64lIiLStvAAaNgDVVsgv+tub16QVcCuGq2Ex5KdEeD/zhzGN//+Pt/914es3lbNWx/toLHJUZyfxdSjSjlzZG+OH9yLrPSO31yZlmZ86eTD+Obf32fWsq2cOry4w9+xdsduvvPPD3h9+TbysyNjItXa0j14CeH9nHOTO+uCZvYwMAkoNLN1wA+dc382s68CzxOZiPIX59zCzrqmiIiIZ81jCnd93KVDeDgrzOry1YkuI+ldcHQ/7n1zNQ+99TFDi/P40smHcebI3ozpF/a0K2h7po4t5dcvLuP3s1Z2KIQ3NTnun7OaXzy/FAPOG1vCv+Zv4N2PdzFhkDaS6g68hPDZZnaEc+6Dzrigc256G8efBZ7tjGuIiIgctJZjCvsfk9haDoHaUbwJpBl/+8JEKmsaKOuV2+nfn5mexhdOOowfP72IeWt2Mm5Aj3Y/s3JrFd/+x/u8s3onJw8r4mfnjyaUk8HT72/klaVbFMK7CS8/zzgRmGdmS83sfTP7wMze97swERGRhOgms8JDmSEq6ytpaGpIdClJr0cw05cA3mzaMf0J52Zw96srY57X0NjE72et5OzbXmfZ5ip+9Zkx3Hf5MfTrkUt+dgbjBvRg1tKtvtUp8eVlJfxs36sQERFJFplBCBZFds3swkJZIQAq6iroma2V00QKZqVz2XEDuX3mcpZvrmRo7/wDznl/3S5ueOIDFm6oYPKoPtx03qgDdvOcNLyYW55bwuaKGnoXdM5On5I47a6EO+fWEJnHPSX6CEePiYiIdE/hskhPeBfWHMI1pjA5/M/xA8nOSOPuV1ftc7yqtoEfPbWQ8+56k62Vtfz+4qO5+9JxBwRwgFNHFAHwqlbDu4V2Q7iZXQf8DSiOPh40s2v8LkxERCRhwgO6fDtKOCsMQHlt1975s7voGcxk2jFlPDl/Pet37QHgpUWb+cSvX+Wvs1dz8cQBvPT1U2KOIBzeO58+Bdm8snRLvMoWH3lpR7kSmOicqwYws1uAOcAdfhYmIiKSMOEyWPwUNDVCWsdH0yUDhfDk84WTInPJb31hKXvqGvn3h5sY3jufOy462tMNm2bGpOFFPPP+Ruobm8jQqMIuzcv/ewY0tnjdGD0mIiLSPfUYAE31ULkp0ZUctIKsAkDtKMmkX49czh1TwhPvruflJVv45lnDeeqaEz0F8GaThhdRWdvAu2t2+lipxIOXlfB7gbfM7J/R1+cBf/avJBERkQQLN88KXwOhrrnduFbCk9PXzxpOQU4G/3P8QAYWBjv8+ROGFJKeZsxatpWJh/XyoUKJFy83Zv4auBzYEX1c7pz7rd+FiYiIJEy4xYY9XVReRh4BCyiEJ5nScA43njvqoAI4QH52BuMH9uCVJeoL7+raDOFmVhB97gmsBh6MPtZEj4mIiHRP4f6R5y48ptDMCGWF1I7SDU0aXsySTZVsKq9JdClyCGK1ozwEnAPMA1yL4xZ9fZiPdYmIiCROehbk94W374GlXXcz51DmLsoXPwnvz9z3jUAmnPMb6DM6MYXJIZk0vIif/3sJry7bwueOKUt0OXKQ2gzhzrlzos+D4leOiIhIkjjha7Dy5URXcUhCDXsoN4Os3i2OOlj+QuT3phDeJTWPKpy1dKtCeBfW7o2ZZjbTOXd6e8dERES6lWOvjjy6sPDMa9i0exNMeWzfN24ug/J1iSlKDpmZceqIIp5eoFGFXVmsnvDsaO93oZn1MLOe0cdAoGveKi4iIpJCCrIKWu8JD/VTCO/iThlWTGVtA/M0qrDLirUS/iXga0AJ8G6L4xXAnX4WJSIiIocunBVufTpKqB+Ur41/QdJpThjSKzKqcOlWjtWowi6pzZVw59xt0X7wbzjnBrV4jHHOKYSLiIgkuXBWmD0Ne6htrN33jVCpVsK7uOZRhbO0hX2X5WWznnIzu2z/g865+32oR0RERDpJKCsERDbsKc4tbvFGP9izA+p2Q2ZugqqTQ3Xq8GJu/vcSNpbvoW8oJ9HlSAd56eQ/psXjJOBG4FwfaxIREZFO0DKE7/tGdA56xfo4VySdadLwyF+sXl26NcGVyMFodyXcOXdNy9dmFgYe8a0iERER6RTNIfyAmzND/SLP5WuhcGicq5LOMqx3Hn1DkVGF0yZoVGFXczAzbaoBzQ4XERFJcuGsMNDaSnhzCFdfeFdmZkwaXsQbK7ZR39iU6HKkg9oN4Wb2lJnNiD6eBpYC//S/NBERETkUbYbw/L6AKYR3A6cMK6aqtoG5qzWqsKvxcmPmr1r8ugFY45zTP7UiIiJJriCzAGilHSWQEQni5eoJ7+pOGNKLjIAxa9kWjhusUYVdiZee8FfjUYiIiIh0rpz0HDLTMimv06zw7io/O4PTR/TGsESXIh3UZgg3s0rAtfYW4JxzBb5VJSIiIofMzAhlhdresGfjgvgXJZ3u7kvHJboEOQhthnDnXH48CxEREZHOF8oKsaumja3rlzwDzoFpFVUk3rz0hGNmY4jMCAd4zTn3vn8liYiISGcJZ4XbbkdprIXqbZBXFP/CRFKcl+ko1wF/A4qjj7+Z2TWxPyUiIiLJIGY7CkCFZi2IJIKXOeFXAhOdcz9wzv0AOBb4or9liYiISGcIZ4Vjh3CNKRRJCC8h3IDGFq8bo8dEREQkyRVkFbCrdhfO7TdroXnreoVwkYTw0hN+L/CWmf2TSPieCvzZ16pERESkU4SzwtQ31bOnYQ+5Gbn/fSOnB2TkKoSLJIiXOeG/NrNZwInRQ5c7597ztSoRERHpFC13zdwnhJtBQalCuEiCeLkxczCw0Dl3O/ABcJKZhX2vTERERA5ZKDMEtLJrJkQ37FEIF0kELz3h/wAazWwIcDfQH3jI16pERESkU4SyIiG87V0zFcJFEsFLCG9yzjUAFwB3Oue+CfT1tywRERHpDM0hvPWV8P5QtQkaauNclYh4CeH1ZjYduAx4Onosw7+SREREpLPs7QmvaW0lvDTyXLEhjhWJCHgL4ZcDxwE/dc59ZGaDgAf8LUtEREQ6Q7vtKAAV6+NYkYiAt+koi4BrW7z+CLjFz6JERESkc2QGMslJz2m7HQXUFy6SAF5WwkVERKQLa3PXzIKSyHP52vgWJCIK4SIiIt1dmyE8IweCRVoJF0kAhXAREZFurnnr+tbf1IY9IonQbk+4mY0HvgsMiJ5vgHPOHelzbSIiItIJwllhllYvbf3NUD/YvjK+BYlI+yEc+BvwTSK7ZTb5W46IiIh0tlBmqPV2FIjcnLlqFjgX2cpeROLCSwjf6pyb4XslIiIi4otQVojyunKaXBNptl8naqgf1FVBTTnkhBNToEgK8hLCf2hmfwJmAnu31HLOPeFbVSIiItJpwllhmlwTVfVVFGQW7Ptm86zw8nUK4SJx5CWEXw6MILJLZnM7igMUwkVERLqAvRv21JTHDuF9Rse5MpHU5SWEH+OcG+57JSIiIuKLvVvX15XTn/77vrl310xNSBGJJy8jCmeb2UjfKxERERFfNK+EtzqmMFgMaRkaUygSZ15Wwo8F5pvZR0R6wjWiUEREpAvZ247S2oSUtDQIaVa4SLx5CeGTfa9CREREfNPcjtLmhj2h/grhInHWbjuKc24NEAamRB/h6DERERHpAvIz84E2VsJBu2aKJEC7IdzMriOyYU9x9PGgmV3jd2EiIiLSOdLT0snPzI+xYU8/qNgATY3xLUwkhXlpR7kSmOicqwYws1uAOcAdfhYmIiIinSeUGYrRjtIPXCNUbor0h4uI77xMRzGg5V+NG6PHREREpIsIZ4Upr4uxdT2oJUUkjryshN8LvGVm/4y+Pg/4s38liYiISGcLZYcor2krhEdXv8vXAhPjVpNIKms3hDvnfm1ms4ATo4cud86952tVIiIi0qlCmSHWlLcxV6EgGsIr1sevIJEUFzOEm1kAWOicGwG8G5+SREREpLPFbEfJLoDskNpRROIoZgh3zjWa2VIzK3POfRyvotpjZicBFxOpf6Rz7vgElyQiIpLUQlkhKusqaWhqID2tlf/8a1a4SFx5uTGzB7DQzGaa2Yzmx8Fe0Mz+YmZbzOzD/Y5Pjgb+FWb27Vjf4Zx73Tl3NfA0cN/B1iIiIpIqmnfNrKiraOOEftGecBGJhzZXws0syzlXC3y/k6/5V+BO4P4W1woAdwFnAuuAd6JBPwDcvN/nr3DObYn++iIiIxRFREQkhuZdM8try+mZ3fPAEwpKYe1bca5KJHXFakeZAxwNfME5d2lnXdA595qZDdzv8ARghXNuFYCZPQJMdc7dDJzT2veYWRlQ7pyr7KzaREREuqvmlfCYG/bs2Ql11ZAZjGNlIqkpVgjPNLOLgOPN7IL933TOPdGJdZQCLX8Gto72ZyRdSWR8YqvM7CrgKoCysrJDrU9ERKRLa7kS3qq9s8LXQ9GwOFUlkrpihfCridz8GAam7PeeAzozhHeYc+6H7bx/D3APwPjx411cihIREUlSoczISnjMXTMh0heuEC7iuzZDuHPuDeANM5vrnPN7c571QP8Wr/tFj4mIiEgnCGV7DeGakCISD+1OR4lDAAd4BxhqZoPMLBOYBhz0BBYRERHZV35GPgELtN2Okt8XLE0hXCROvIwo7FRm9jCRmz6Hm9k6M7vSOdcAfBV4HlgMPOacWxjv2kRERLorM6Mgs6DtEB5IjwRx7ZopEhftblvf2Zxz09s4/izwbJzLERERSRmhrFDbu2aCZoWLxFG7K+EWcYmZ/SD6uszMJvhfmoiIiHSmUFao7Z5wiIZwtaOIxIOXdpTfAccBzSvYlUQ21hEREZEuJJwVbrsdBaIhfD00NcWvKJEU5aUdZaJz7mgzew/AObczevOkiIiIdCGhrBDLdi5r+4SCftBYC5UbIFgUv8LiJS0D0uJ+O5xIq7yE8ProtvIOwMyKAP0VWUREpItptx0lHN3c7jej4lNQvPU5Aq5+I9FViADeQvjtwD+BYjP7KXAh8D1fqxIREZFOF84Ks6dhD3WNdWQGWvmh9uBTYfItUF8d/+L8tvoNWPkyNNZDICPR1Yi0H8Kdc38zs3nA6YAB5znnFvtemYiIiHSq5l0zy2vLKcptpd0kPQuOvTrOVcVJdjgSwndvh/w+ia5GxNN0lGOB9c65u5xzdwLrzWyi/6WJiIhIZ2p318zuLFgYea7eltg6RKK83J3we6Cqxeuq6DERERHpQsJZYYDYE1K6q+YbTau3JrYOkSgvIdycc675hXOuiQRs8iMiIiKHpmU7SsrZG8K1Ei7JwUsIX2Vm15pZRvRxHbDK78JERESkc+1dCY+1a2Z3tbcdRSvhkhy8hPCrgeOB9cA6YCJwlZ9FiYiISOcLZaVwT3h2GNLSYbdWwiU5eJmOsgWYFodaRERExEc56TlkpGWkZgg3g9xCrYRL0mg3hEc35/kiMLDl+c65K/wrS0RERDqbmRHOClNRW5HoUhIjWKSecEkaXm6wfBJ4HXgJaPS3HBEREfFTu7tmdmfBQoVwSRpeQniuc+5bvlciIiIivgtlhVJzOgpEQvjO1YmuQgTwdmPm02b2Sd8rEREREd+FMlN5JVztKJI8vITw64gE8RozqzCzSjNL0WYyERGRri2cHU7tlfC6SqivSXQlIp6mo+THoxARERHxX3M7inMOM0t0OfGVG50VvnsbhPolthZJee2uhFvEJWb2/ejr/mY2wf/SREREpLOFMkPUNdWxp2FPokuJP21dL0nESzvK74DjgIuir6uAu3yrSERERHzTvGtmRV0KdpZq63pJIl5C+ETn3FeAGgDn3E4g09eqRERExBcpvWumtq6XJOIlhNebWQBwsHfzniZfqxIRERFfKISjlXBJCl7mhN8O/BMoNrOfAhcC3/O1KhEREfFFczvKkyueZOG2hR36rIusx3WYkRw3gGakZXBZerZWwiUpeJmO8jczmwecDhhwnnNuse+ViYiISKfrG+xLQWYBT696OtGlxF0wI8hlmhUuSSJmCI+2oSx0zo0AlsSnJBEREfFLXmYer37uVRqaGg7q8x0da+jcwa2e++Yvk7USLkkhZgh3zjWa2VIzK3POfRyvokRERMQ/6WnppKd56UjthnILI3PCRRLMyz+BPYCFZvY2UN180Dl3rm9ViYiIiPghWARb9cN9STwvIfz7vlchIiIiEg/Bwkg7inOQajuGSlLxcmPmq2Y2ABjqnHvJzHKBgP+liYiIiHSyYCE01EBdNWTlJboaSWFetq3/IvB34A/RQ6XAv/wsSkRERMQX2rpekoSXzXq+ApwAVAA455YDxX4WJSIiIuILbV0vScJLCK91ztU1vzCzdDjIaf0iIiIiiaSt6yVJeAnhr5rZd4AcMzsTeBx4yt+yRERERHyQGw3hGlMoCeYlhH8b2Ap8AHwJeBZtWy8iIiJdkVbCJUm0OR3FzGY6504HbnbOfQv4Y/zKEhEREfFBRg5k5qsnXBIu1ojCvmZ2PHCumT0C7DNM0zn3rq+ViYiIiPiheVa4SALFCuE/ILJRTz/g1/u954DT/CpKRERExDfBQq2ES8LFCuEbnXNnm9kPnHM3xa0iERERET8Fi2DX2kRXISku1o2Zt0efz4tHISIiIiJxoXYUSQKxVsLrzeweoNTMbt//Tefctf6VJSIiIuKTYFFkRKFzYNb++SI+iBXCzwHOAM4C5sWnHBERERGf5RZCUwPU7IKcHomuRlJUmyHcObcNeMTMFjvnFsSxJhERERH/tNy6XiFcEiTWnPD/55z7BfAFMztgm3q1o4iIiEiX1HLDnsKhia1FUlasdpTF0ee58ShEREREJC72hnCNKZTEidWO8lT0+b74lSMiIiLis73tKJqQIokTqx3lKSKb8rTKOXeuLxWJiIiI+Cm3V+RZK+GSQLHaUX4Vfb4A6AM8GH09HdjsZ1EiIiIivglkRG7I1Eq4JFCsdpRXAczsVufc+BZvPWVm6hMXERGRriu3MDIrXCRBYu2Y2SxoZoc1vzCzQUDQv5JEREREfBYsUjuKJFSsdpRm1wOzzGwVYMAA4CpfqxIRERHxU7AQti1LdBWSwtoN4c6558xsKDAiemiJc67W37JEREREfBQsgjVvJroKSWFeVsKJhm7tmikiIiLdQ7AQdu+ApkZICyS6GklBXnrCRURERLqXYBHgIkFcJAEUwkVERCT1tNy6XiQB2g3hZvaEmX3KzBTYRUREpHvIjYZwjSmUBPESrH8HXAQsN7Ofm9lwn2uKycxGmtljZvZ7M7swkbWIiIhIF6Wt6yXB2g3hzrmXnHMXA0cDq4GXzGy2mV1uZhkduZiZ/cXMtpjZh/sdn2xmS81shZl9u52vORu4wzn3v8BlHbm+iIiICNAihGslXBLDU4uJmfUC/gf4AvAecBuRUP5iB6/3V2Dyft8dAO4iEq5HAtOjq91HmNnT+z2KgQeAaWb2S6BXB68vIiIiEtm23tK0Ei4J0+6IQjP7JzCcSPid4pzbGH3r0Y5uX++ce83MBu53eAKwwjm3Knq9R4CpzrmbgXPa+KqvRMP7Ex25voiIiAgAaWmQ20sr4ZIwXuaE3+6ce6W1N5xz4zuhhlJgbYvX64CJbZ0cDfHfAYLAL2OcdxXRnT3Lyso6oUwRERHpVoJFWgmXhPESwnuY2QX7HSsHPnDObfGhppicc6uJhut2zrsHuAdg/PjxzueyREREpKsJFmolXBLGSwi/EjgOaF4NnwTMAwaZ2U3OuQcOsYb1QP8Wr/tFj4mIiIj4J1gEG+YnugpJUV5CeAZwuHNuM4CZ9QbuJ9Iy8hqRXvFD8Q4w1MwGEQnf04iMRBQRERHxT26h5oRLwniZjtKvOYBHbQH6O+d2APUduZiZPQzMAYab2Tozu9I51wB8FXgeWAw85pxb2JHvFREREemwYBHUlENDXaIrkRTkZSV8lpk9DTweff3p6LEgsKsjF3POTW/j+LPAsx35LhEREZFDEmyxa2ZBSWJrkZTjJYR/BbgAODH6+n7gH845B5zqV2EiIiIivmq5YY9CuMRZzBAencX9knPuVOAf8SlJREREJA6aV8I1plASIGZPuHOuEWgys1Cc6hERERGJD21dLwnkpR2lCvjAzF4EqpsPOueu9a0qEREREb9pJVwSyEsIfwJtDy8iIiLdTVYBpGVoTKEkRLsh3Dl3n5nlAGXOuaVxqElERETEf2baul4Spt054WY2BZgPPBd9PdbMZvhdmIiIiIjvtHW9JIiXzXpuBCYQnQnunJsPHOZjTSIiIiLxoZVwSRAvIbzeOVe+37EmP4oRERERiSuthEuCeLkxc6GZXQQEzGwocC0w29+yREREROIgWKQQLgnhZSX8GmAUUAs8DFQAX/OzKBEREZG4CBZCfTXUVbd/rkgn8jIdZTfw3ehDREREpPtouWFPZjCxtUhKaTeEm9kw4BvAwJbnO+dO868sERERkTjIjW7Ys3sb9BiQ2FokpXjpCX8cuBv4E9DobzkiIiIicaSt6yVBvITwBufc732vRERERCTetHW9JIiXGzOfMrMvm1lfM+vZ/PC9MhERERG/7Q3hWgmX+PKyEv756PM3WxxzaMMeERER6eoyg5CRq5VwiTsv01EGxaMQERERkYTQhj2SAG2GcDP7f865X0R//Rnn3OMt3vuZc+478ShQRERExFfBItjwLrx5m4eTLfpk+74+gGv7K1yM99q9fCvX2+f73L7H0gIw+kIo6Hvw1xRfxFoJnwb8IvrrG4hMSWk2GVAIFxERka6vz5Ew71548QeJrsQfNeVw2vcSXYXsJ1YItzZ+3dprERERka7pnN/AJ37S+ipzS3tXnPdbbW5LzO87mCgV63r7r9BHj902Bqo2H8S1xG+xQngrP9to87WIiIhI12QGWXmJrsIfecXqd09SsUL4GDOrIPJXq5zor4m+zva9MhERERE5NMFCTX5JUm2GcOdcIJ6FiIiIiEgnCxbBztWJrkJa4WWzHhERERHpinILoXp7oquQViiEi4iIiHRXwUKoq4T6PYmuRPajEC4iIiLSXQWLIs+6OTPpKISLiIiIdFfBwsjzboXwZKMQLiIiItJdaSU8aSmEi4iIiHRXzSvhGlOYdBTCRURERLorrYQnLYVwERERke4qMw8CWVoJT0IK4SIiIiLdlVlkNVwr4UlHIVxERESkO9PW9UlJIVxERESkOwsWakRhElIIFxEREenO1I6SlBTCRURERLqz5nYU5xJdibSgEC4iIiLSnQWLoKEG6qoTXYm0oBAuIiIi0p3lasOeZKQQLiIiItKdacOepKQQLiIiItKdaev6pKQQLiIiItKdNYdwjSlMKgrhIiIiIt2ZesKTkkK4iIiISHeWmQuZeeoJTzIK4SIiIiLdXbBQITzJKISLiIiIdHe5hWpHSTIK4SIiIiLdnbauTzoK4SIiIiLdXVAr4clGIVxERESkuwsWRkYUOpfoSiRKIVxERESkuwsWQVMD1OxKdCUSpRAuIiIi0t1p6/qkoxAuIiIi0t3t3bpeITxZKISLiIiIdHfaNTPpKISLiIiIdHd721EUwpOFQriIiIhId5fbK/KsdpSkkfQh3MwOM7M/m9nfYx0TERERkTakZ0J2KDKmUJKCryHczP5iZlvM7MP9jk82s6VmtsLMvh3rO5xzq5xzV7Z3TERERERiCBapHSWJpPv8/X8F7gTubz5gZgHgLuBMYB3wjpnNAALAzft9/grn3BafaxQRERHp/rR1fVLxNYQ7514zs4H7HZ4ArHDOrQIws0eAqc65m4Fz/KxHREREJGUFC2HbikRXIVGJ6AkvBda2eL0ueqxVZtbLzO4GjjKzG9o61srnrjKzuWY2d+tW/ehFREREUlxuodpRkojf7SiHzDm3Hbi6vWOtfO4e4B6A8ePHO98KFBEREekKgkWwezs0NUJaINHVpLxErISvB/q3eN0vekxERERE/BIsAhzs3pHoSoTEhPB3gKFmNsjMMoFpwIwE1CEiIiKSOoLRWeEaU5gU/B5R+DAwBxhuZuvM7ErnXAPwVeB5YDHwmHNuoZ91iIiIiKQ87ZqZVPyejjK9jePPAs/6eW0RERERaUEhPKkk/Y6ZIiIiItIJ9obw7YmtQwCFcBEREZHUkNMDMK2EJwmFcBEREZFUkBaA3F4K4UlCIVxEREQkVQSLNB0lSSiEi4iIiKSKYCFUK4QnA4VwERERkVQR1Nb1yUIhXERERCRVBIsUwpOEQriIiIhIqggWQU05NNQlupKUpxAuIiIikipym7eu16zwRFMIFxEREUkV2jUzaSiEi4iIiKSK5hCuMYUJpxAuIiIikiqChZFnjSlMOIVwERERkVSxN4SrHSXRFMJFREREUkV2GNLSFcKTgEK4iIiISKowi84KVztKoimEi4iIiKSSXG1dnwwUwkVERERSibauTwoK4SIiIiKpJFikEYVJQCFcREREJJUE1Y6SDBTCRURERFJJsBDqqqBud6IrSWkK4SIiIiKpRLtmJgWFcBEREZFU0hzC1ZKSUArhIiIiIqkkV1vXJwOFcBEREZFUoq3rk4JCuIiIiEgqUU94UlAIFxEREUklmUFIz9ZKeIIphIuIiIikErPIarh6whNKIVxEREQk1Wjr+oRTCBcRERFJNVoJTziFcBEREZFUk6ut6xNNIVxEREQk1TS3oziX6EpSlkK4iIiISKoJFkFjLdRVJbqSlKUQLiIiIpJqtGFPwimEi4iIiKSa5g17OtoX3lALNRVQX+N/K0tTE9TtjlyzqcnfayVAeqILEBEREZE4a14J/8cXICcMaRmQlh59BCKzxOuqobYq0rJSVxX5dVP9vt8TyIxs/LP3OfodFoh+V9p/f23Wei3ORVpj6vdEH7sjzw01+56Xlg6BLAhkRK4XyIzUmhb4b+0W+O+xy56ErPwVJXORAAAHeUlEQVTO/9+ukyiEi4iIiKSa4pFw9Odh93Zoaog8GuuhqTGy8uyaIDMP8vtEnjPzICv6nJ4FjXXQUBcJyo3R54a6SJhuagTXGHne++uG2PUEsiAzFzJyIKPFc3pWpJbG+khdjXWRXzfW/rfe5vpbXrOpIRLIk5hCuIiIiEiqSc+Cc29PdBUpTT3hIiIiIiJxphAuIiIiIhJnCuEiIiIiInGmEC4iIiIiEmcK4SIiIiIicaYQLiIiIiISZwrhIiIiIiJxphAuIiIiIhJnCuEiIiIiInGmEC4iIiIiEmcK4SIiIiIicaYQLiIiIiISZwrhIiIiIiJxphAuIiIiIhJnCuEiIiIiInGmEC4iIiIiEmcK4SIiIiIicaYQLiIiIiISZ+acS3QNvjOzrcAaHy9RCGzz8ful69OfEYlFfz6kPfozIu3Rn5HkMcA5V9TeSSkRwv1mZnOdc+MTXYckL/0ZkVj050Paoz8j0h79Gel61I4iIiIiIhJnCuEiIiIiInGmEN457kl0AZL09GdEYtGfD2mP/oz8//buL0ausozj+PdH16ZQUcSLprYlrQqYqlBIi6hEEbloBaEXhkowAaNcYaxGMFWvvCDRaPyv3IDYxD+tVhJIL0gQUYmECm1tKrREBISSIiT8q6ShtD5enLfp2ijbbnHOzs73k0x23jNn3n1mc/LMs+88Z44m4jEyZOwJlyRJkgbMlXBJkiRpwCzCj0GS5UkeSvJwkjV9x6P+JVmQ5K4kDyZ5IMnqtv3kJHck+Wv7+aa+Y1W/ksxIsjXJxjZelGRTyyfrk8zsO0b1J8lJSTYk2ZlkR5L3mkd0UJLPt/eYvyT5RZJZ5pDhYxE+SUlmAD8EVgCLgcuTLO43Kk0B+4EvVNVi4FzgmnZcrAHurKpTgTvbWKNtNbBj3PjrwLer6u3Ac8CneolKU8V3gdur6h3AmXTHinlEJJkHfBZYWlXvAmYAH8ccMnQswifvHODhqnqkqvYB64BLe45JPauq3VW1pd3fQ/fGOY/u2FjbdlsLrOwnQk0FSeYDFwE3tnGAC4ANbRePkRGW5I3AB4CbAKpqX1U9j3lEh4wBxycZA04AdmMOGToW4ZM3D3hi3HhX2yYBkGQhcBawCZhTVbvbQ08Bc3oKS1PDd4AvAv9q4zcDz1fV/jY2n4y2RcAzwM2tZenGJLMxjwioqieBbwKP0xXfLwCbMYcMHYtw6f8gyeuBXwOfq6oXxz9W3VcS+bVEIyrJxcDTVbW571g0ZY0BZwM3VNVZwEsc1npiHhld7VyAS+n+WXsLMBtY3mtQmhSL8Ml7Elgwbjy/bdOIS/I6ugL8Z1V1S9v8jyRz2+Nzgaf7ik+9ez9wSZLH6NrYLqDr/z2pfbQM5pNRtwvYVVWb2ngDXVFuHhHAhcCjVfVMVb0C3EKXV8whQ8YifPLuA05tZyPPpDsp4raeY1LPWm/vTcCOqvrWuIduA65s968Ebh10bJoaqupLVTW/qhbS5Y3fVtUVwF3Ax9puHiMjrKqeAp5Icnrb9GHgQcwj6jwOnJvkhPaec/D4MIcMGS/WcwySfISut3MG8OOqur7nkNSzJOcBdwPbOdTv+2W6vvBfAqcAfwcuq6pnewlSU0aS84Frq+riJG+lWxk/GdgKfKKqXu4zPvUnyRK6E3dnAo8An6RbODOPiCRfBVbRfSPXVuDTdD3g5pAhYhEuSZIkDZjtKJIkSdKAWYRLkiRJA2YRLkmSJA2YRbgkSZI0YBbhkiRJ0oBZhEvSEEpyIMmfx93WTPys/zrP75Isfa3jO4LfuzLJ4kH/XkmaKsYm3kWSNAXtraolfQdxDFYCG+kuMiJJI8eVcEmaJpIsT/KrcePzk2xs929Icn+SB9qFPiaaa1mSe5JsS/KnJCcmmZXk5iTbk2xN8qG271VJfjDuuRvbhYhI8s8k17d57k0yJ8n7gEuAb7RV/Le9xn8KSZryLMIlaTgdf1g7yirgN8B7ksxu+6yiu4IewFeqailwBvDBJGf8r4mTzATWA6ur6kzgQmAvcA1QVfVu4HJgbZJZE8Q5G7i3zfMH4OqquofuEuzXVdWSqvrbJF6/JA01i3BJGk57WwF78La+qvYDtwMfTTIGXATc2va/LMkWustZvxN4tX7s04HdVXUfQFW92OY+D/hp27aT7tLpp00Q5z66thOAzcDCo3ydkjQt2RMuSdPLOuAzwLPA/VW1J8ki4FpgWVU9l+QnwEQr2EdjP/+5qDN+7leqqtr9A/i+I0mAK+GSNN38HjgbuJpDrShvAF4CXkgyB1gxwRwPAXOTLANo/eBjwN3AFW3bacApbd/HgCVJjkuyADjnCOLcA5x4FK9LkqYVi3BJGk6H94R/DaCqDtC1f6xoP6mqbXRtKDuBnwN/fLWJq2ofXT/595NsA+6gW93+EXBcku10PeNXVdXLbb5H6b7p5HvAliOIfx1wXTvB0xMzJY2cHPqUUJIkSdIguBIuSZIkDZhFuCRJkjRgFuGSJEnSgFmES5IkSQNmES5JkiQNmEW4JEmSNGAW4ZIkSdKAWYRLkiRJA/ZvekxHoASdwhsAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f6b2efce390>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pylab.rcParams['figure.figsize'] = (12, 8)\n",
    "for i, optimizer in enumerate(optimizers):\n",
    "    pylab.plot(converge_cnts[i], abs(ref_value - converge_vals[i]), label=type(optimizer).__name__)\n",
    "pylab.xlabel('Eval count')\n",
    "pylab.ylabel('Energy difference from solution reference value')\n",
    "pylab.title('Energy convergence for various optimizers')\n",
    "pylab.yscale('log')\n",
    "pylab.legend(loc='upper right');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Using Gradient framework\n",
    "\n",
    "Qiskit now has a Gradient framework as part of the Operator capability. With the gradient computed for the optimizer we now see just the optimization steps themselves."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Value using Gradient: -1.85728\n"
     ]
    }
   ],
   "source": [
    "from qiskit.aqua.operators.gradients import Gradient\n",
    "\n",
    "aqua_globals.random_seed = 50\n",
    "var_form = TwoLocal(rotation_blocks='ry', entanglement_blocks='cz')\n",
    "\n",
    "optimizer = SLSQP(maxiter=60)\n",
    "\n",
    "counts = []\n",
    "values = []\n",
    "def store_intermediate_result(eval_count, parameters, mean, std):\n",
    "    counts.append(eval_count)\n",
    "    values.append(mean)\n",
    "\n",
    "vqe = VQE(H2_op, var_form, optimizer, callback=store_intermediate_result,\n",
    "          gradient=Gradient(grad_method='fin_diff'),\n",
    "          quantum_instance=QuantumInstance(backend=BasicAer.get_backend('statevector_simulator')))\n",
    "result = vqe.compute_minimum_eigenvalue(operator=H2_op)\n",
    "print(f'Value using Gradient: {result.eigenvalue.real:.5f}')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f6b2ed85358>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "pylab.rcParams['figure.figsize'] = (12, 8)\n",
    "pylab.plot(counts, values, label=type(optimizer).__name__)\n",
    "pylab.xlabel('Eval count')\n",
    "pylab.ylabel('Energy')\n",
    "pylab.title('Energy convergence using Gradient')\n",
    "pylab.legend(loc='upper right');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Monitoring via the logging\n",
    "\n",
    "Much of the code is instrumented with [Python logging](https://docs.python.org/3/library/logging.html) statements. The logging is configurable to adjust level of logging etc. An easy way to enable logging in the `qiskit.aqua` module is to run the following code, where here we set the logging level to `INFO`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "import logging\n",
    "from qiskit.aqua import set_qiskit_aqua_logging\n",
    "\n",
    "\n",
    "set_qiskit_aqua_logging(logging.INFO)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "and at INFO level logging VQE will include information on the evaluations, as below.\n",
    "\n",
    "`020-11-04 16:55:33,450:qiskit.aqua.algorithms.minimum_eigen_solvers.vqe:INFO: Energy evaluation returned [-8.88931977] - 6801.61572 (ms), eval count: 1\n",
    "2020-11-04 16:55:34,463:qiskit.aqua.algorithms.minimum_eigen_solvers.vqe:INFO: Energy evaluation returned [-8.88931977] - 1012.12025 (ms), eval count: 2\n",
    "2020-11-04 16:55:35,483:qiskit.aqua.algorithms.minimum_eigen_solvers.vqe:INFO: Energy evaluation returned [-8.88931977] - 1019.99474 (ms), eval count: 3\n",
    "2020-11-04 16:55:36,646:qiskit.aqua.algorithms.minimum_eigen_solvers.vqe:INFO: Energy evaluation returned [-8.88931977] - 1162.09555 (ms), eval count: 4`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<h3>Version Information</h3><table><tr><th>Qiskit Software</th><th>Version</th></tr><tr><td>Qiskit</td><td>0.23.0</td></tr><tr><td>Terra</td><td>0.16.0</td></tr><tr><td>Aer</td><td>0.7.0</td></tr><tr><td>Ignis</td><td>0.5.0</td></tr><tr><td>Aqua</td><td>0.8.0</td></tr><tr><td>IBM Q Provider</td><td>0.11.0</td></tr><tr><th>System information</th></tr><tr><td>Python</td><td>3.6.1 |Continuum Analytics, Inc.| (default, May 11 2017, 13:09:58) \n",
       "[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]</td></tr><tr><td>OS</td><td>Linux</td></tr><tr><td>CPUs</td><td>1</td></tr><tr><td>Memory (Gb)</td><td>5.827335357666016</td></tr><tr><td colspan='2'>Sat Nov 07 16:21:19 2020 EST</td></tr></table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div style='width: 100%; background-color:#d5d9e0;padding-left: 10px; padding-bottom: 10px; padding-right: 10px; padding-top: 5px'><h3>This code is a part of Qiskit</h3><p>&copy; Copyright IBM 2017, 2020.</p><p>This code is licensed under the Apache License, Version 2.0. You may<br>obtain a copy of this license in the LICENSE.txt file in the root directory<br> of this source tree or at http://www.apache.org/licenses/LICENSE-2.0.<p>Any modifications or derivative works of this code must retain this<br>copyright notice, and modified files need to carry a notice indicating<br>that they have been altered from the originals.</p></div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import qiskit.tools.jupyter\n",
    "%qiskit_version_table\n",
    "%qiskit_copyright"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
